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);
        }