private void AddHitForSiteAndNeighbors(int i, IBins <bool> x, int toExtendTo) { x.AddHit(i); for (int j = 0; j <= toExtendTo; j++) { var binIndex = i - j; if (binIndex >= 0) { x.AddHit(binIndex); } else { break; } } for (int j = 0; j <= toExtendTo; j++) { var binIndex = i + j; if (binIndex < _binEvidence.NumBins) { x.AddHit(binIndex); } else { break; } } }
private void SetIsMessyEnoughForSiteAndNeighborsIfNotSnv(int binsToExtendTo, int i) { _isMessyEnough.AddHit(i); for (int j = 0; j < binsToExtendTo; j++) { var binIndex = i - j; if (binIndex >= 0) { if (!GetProbableTrueSnvRegion(binIndex)) { _isMessyEnough.AddHit(binIndex); } } else { break; } } for (int j = 0; j < binsToExtendTo; j++) { var binIndex = i + j; if (!GetProbableTrueSnvRegion(binIndex)) { if (!_isMessyEnough.AddHit(binIndex)) { break; } } } }
public void IncrementMessyHitForPosition(int i, int count) { var binId = (GetBinId(i)); for (int j = 0; j < count; j++) { _messyHits.AddHit(binId); } }
private void SetSiteAndNeighborsToUsable(int binsToExtendTo, int i) { _sitesUsable.AddHit(i); for (int j = 0; j < binsToExtendTo; j++) { var binIndex = i - j; if (binIndex >= 0) { if (!_binConclusions.GetProbableTrueSnvRegion(binIndex)) { _sitesUsable.AddHit(binIndex); } } else { break; } } for (int j = 0; j < binsToExtendTo; j++) { var binIndex = i + j; if (binIndex < _numBins) { if (!_binConclusions.GetProbableTrueSnvRegion(binIndex)) { _sitesUsable.AddHit(binIndex); } } else { break; } } }
private void AddSingleMismatchHit(int i) { _singleMismatchHits.AddHit(i); }
public void AddMessEvidence(bool isMessy, PairResult pairResult, bool isIndel, bool isSingleMismatch, bool isForwardOnlyMessy, bool isReverseOnlyMessy, bool isMapqMessy) { if (!_collectDepth && !isMessy && !isIndel && !isForwardOnlyMessy && !isMapqMessy && !isReverseOnlyMessy && !isSingleMismatch) { return; } foreach (var aln in pairResult.Alignments) { if (aln.RefID != _refId) { continue; } var lastBinSpannedByRead = GetBinId(aln.EndPosition); var firstBin = GetBinId(aln.Position); if (lastBinSpannedByRead + 1 > NumBins - 1) { Console.WriteLine("LAST BIN SPANNED IS GREATER THAN ALLHITS!!!"); } for (int i = firstBin; i <= Math.Min(lastBinSpannedByRead, NumBins - 1); i++) { try { AllHits.AddHit(i); if (isMessy) { AddMessyHit(i); if (isForwardOnlyMessy) { _fwdOnlyMessyHits.AddHit(i); } else if (isReverseOnlyMessy) { _revOnlyMessyHits.AddHit(i); } else if (isMapqMessy) { _mapqMessyHits.AddHit(i); } } if (isIndel) { AddIndelHit(i); } if (isSingleMismatch) { AddSingleMismatchHit(i); } } catch (Exception e) { Console.WriteLine($"FAILED ON {i} ({aln.Position}, {_regionStart})..." + e.Message); throw new Exception($"FAILED ON {i} ({aln.Position}, {_regionStart})", e); } } } }
private bool AddProbableSnvHit(int i) { return(_probableTrueSnvRegions.AddHit(i)); }
public bool SetIndelRegionTrue(int i) { return(_indelRegions.AddHit(i)); }