public void CombineBinEvidence(IBinEvidence evidence, int binOffset = 0, int startBinInOther = 0, int endBinInOther = int.MaxValue) { var binEvidence = evidence as BinEvidence; if (binEvidence == null) { throw new ArgumentException($"Not able to combine bin evidence between two different types."); } _indelHits.Merge(binEvidence._indelHits, binOffset, startBinInOther, endBinInOther); _messyHits.Merge(binEvidence._messyHits, binOffset, startBinInOther, endBinInOther); _singleMismatchHits.Merge(binEvidence._singleMismatchHits, binOffset, startBinInOther, endBinInOther); AllHits.Merge(binEvidence.AllHits, binOffset, startBinInOther, endBinInOther); _revOnlyMessyHits.Merge(binEvidence._revOnlyMessyHits, binOffset, startBinInOther, endBinInOther); _mapqMessyHits.Merge(binEvidence._mapqMessyHits, binOffset, startBinInOther, endBinInOther); _fwdOnlyMessyHits.Merge(binEvidence._fwdOnlyMessyHits, binOffset, startBinInOther, endBinInOther); }