public void AppendStatusStringTag() { var counter = new ReadStatusCounter(); var handler = new DebugSummaryStatusHandler(counter); var pair = TestHelpers.GetPair("10M", "10M"); pair.Read1.ReplaceOrAddStringTag("HI", "nothing");; // Should not update handler.AppendStatusStringTag("HI", "newvalue", pair.Read1); Assert.Equal("nothing", pair.Read1.GetStringTag("HI")); }
public void AddCombinedStatusStringTags() { var counter = new ReadStatusCounter(); var handler = new DebugSummaryStatusHandler(counter); var pair = TestHelpers.GetPair("10M", "10M"); pair.Read1.ReplaceOrAddStringTag("HI", "read1_hi"); pair.Read2.ReplaceOrAddStringTag("HI", "read2_hi"); var outAlignment = new BamAlignment(pair.Read1); outAlignment.ReplaceOrAddStringTag("HI", "nothing"); // Should not update handler.AddCombinedStatusStringTags("HI", pair.Read1, pair.Read2, outAlignment); Assert.Equal("nothing", outAlignment.GetStringTag("HI")); }
public ReadPairRealignerAndCombiner GetRealignPairHandler(bool tryRestitch, bool alreadyStitched, bool pairAwareRealign, Dictionary <int, string> refIdMapping, ReadStatusCounter statusCounter, bool isSnowball, IChromosomeIndelSource indelSource, string chromosome, Dictionary <string, IndelEvidence> masterLookup, bool hasIndels, Dictionary <HashableIndel, int[]> outcomesLookup, bool skipRestitchIfNothingChanged) { var stitcher = GetStitcher(); var stitchedPairHandler = new PairHandler(refIdMapping, stitcher, tryStitch: tryRestitch); var judger = new RealignmentJudger(GetAlignmentComparer()); var readRealigner = new GeminiReadRealigner(GetAlignmentComparer(), remaskSoftclips: _geminiOptions.RemaskMessySoftclips, keepProbeSoftclips: _geminiOptions.KeepProbeSoftclip, keepBothSideSoftclips: _geminiOptions.KeepBothSideSoftclips || (_geminiOptions.KeepProbeSoftclip && alreadyStitched), trackActualMismatches: _realignmentAssessmentOptions.TrackActualMismatches, checkSoftclipsForMismatches: _realignmentAssessmentOptions.CheckSoftclipsForMismatches, debug: _geminiOptions.Debug, maskNsOnly: !(_geminiOptions.RemaskMessySoftclips || _geminiOptions.KeepProbeSoftclip || _geminiOptions.KeepBothSideSoftclips), maskPartialInsertion: _realignmentOptions.MaskPartialInsertion, minimumUnanchoredInsertionLength: _realignmentOptions.MinimumUnanchoredInsertionLength, minInsertionSizeToAllowMismatchingBases: 4, maxProportionInsertSequenceMismatch: 0.2); // TODO fix // TODO figure out what I was saying to fix here... IStatusHandler statusHandler = new DebugSummaryStatusHandler(statusCounter); if (_geminiOptions.Debug) { statusHandler = new DebugStatusHandler(statusCounter); } // Only softclip unknowns if it is not stitched to begin with (we believe in these more, plus it makes our lives simpler for dealing with stitched directions) var softclipUnknownIndels = _geminiOptions.SoftclipUnknownIndels && !alreadyStitched; //var regionFilterer = new RegionFilterer(chromosome, indelSource.Indels); var regionFilterer = new DummyRegionFilterer(); var collector = GetCollector(isSnowball); var realignmentEvaluator = new RealignmentEvaluator(indelSource.DeepCopy(), statusHandler, readRealigner, judger, chromosome, _realignmentAssessmentOptions.TrackActualMismatches, _realignmentAssessmentOptions.CheckSoftclipsForMismatches, _geminiOptions.AllowRescoringOrigZero, softclipUnknownIndels, regionFilterer, _geminiOptions.LightDebug); return(new ReadPairRealignerAndCombiner( collector, GetRestitcher(stitchedPairHandler, statusHandler), realignmentEvaluator, GetIndelFinder(pairAwareRealign, chromosome, indelSource), chromosome, alreadyStitched, pairAwareRealign, masterLookup: masterLookup, hasExistingIndels: hasIndels, masterOutcomesLookup: outcomesLookup, skipRestitchIfNothingChanged: skipRestitchIfNothingChanged, allowedToStitch: !_geminiOptions.SkipStitching)); }
public void AddStatusCount() { var counter = new ReadStatusCounter(); var handler = new DebugSummaryStatusHandler(counter); handler.AddStatusCount("x"); var statuses = counter.GetReadStatuses(); Assert.Equal(1.0, statuses.Count); Assert.Equal(1, statuses["x"]); handler.AddStatusCount("y"); statuses = counter.GetReadStatuses(); Assert.Equal(2, statuses.Count); Assert.Equal(1, statuses["x"]); Assert.Equal(1, statuses["y"]); handler.AddStatusCount("x"); statuses = counter.GetReadStatuses(); Assert.Equal(2, statuses.Count); Assert.Equal(2, statuses["x"]); Assert.Equal(1, statuses["y"]); }