gatk-3.8/protected/java/test/org/broadinstitute/sting/utils
Mark DePristo 50cdffc61f Slightly improved Smith-Waterman parameter values for HaplotypeCaller Path comparisons
Key improvement
---------------
-- The haplotype caller was producing unstable calls when comparing the following two haplotypes:

ref:               ACAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGA
alt: TGTGTGTGTGTGTGACAGAGAGAGAGAGAGAGAGAGAGAGAGAGA

in which the alt and ref haplotypes differ in having indel at both the start and end of the bubble.  The previous parameter values used in the Path algorithm were set so that such haplotype comparisons would result in the either the above alignment or the following alignment depending on exactly how many GA units were present in the bubble.

ref: ACAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGA
alt: TGTGTGTGTGTGTGACAGAGAGAGAGAGAGAGAGAGAGAGAGAGA

The number of elements could vary depending on how the graph was built, and resulted in real differences in the calls between BWA mem and BWA-SW calls.  I added a few unit tests for this case, and found a set of SW parameter values with lower gap-extension penalties that significantly favor the first alignment, which is the right thing to do, as we really don't mind large indels in the haplotypes relative to having lots of mismatches.

-- Expanded the unit tests in both SW and KBestPaths to look at complex events like this, and to check as well somewhat sysmatically that we are finding many types of expected mutational events.
-- Verified that this change doesn't alter our calls on 20:10,000,000-11,000,000 at all

General code cleanup
--------------------
-- Move Smith-Waterman to its own package in utils
-- Refactored out SWParameters class in SWPairwiseAlignment, and made constructors take either a named parameter set or a Parameter object directly.  Depreciated old call to inline constants.  This makes it easier to group all of the SW parameters into a single object for callers
-- Update users of SW code to use new Parameter class
-- Also moved haplotype bam writers to protected so they can use the Path SW parameter, which is protected
-- Removed the storage of the SW scoring matrix in SWPairwiseAligner by default.  Only the SWPairwiseAlignmentMain test program needs this, so added a gross protected static variable that enables its storage
2013-04-11 18:22:55 -04:00
..
genotyper HaplotypeCaller no longer uses reads with poor likelihoods w.r.t. any haplotype 2013-04-08 12:47:49 -04:00
haplotype LD-based merging algorithm for nearby events in the haplotypes 2013-04-08 12:47:48 -04:00
haplotypeBAMWriter Slightly improved Smith-Waterman parameter values for HaplotypeCaller Path comparisons 2013-04-11 18:22:55 -04:00
nanoScheduler Fix caching indices in the PairHMM 2013-04-08 11:05:12 -04:00
pairhmm Fix caching indices in the PairHMM 2013-04-08 11:05:12 -04:00
recalibration Cleanup and unit tests for QualityUtils 2013-02-16 07:31:37 -08:00
smithwaterman Slightly improved Smith-Waterman parameter values for HaplotypeCaller Path comparisons 2013-04-11 18:22:55 -04:00
ContigComparatorUnitTest.java Generalize and fixup ContigComparator 2013-02-09 09:52:13 -05:00