internal static InclusiveInterval <uint> CalculateBorderInterval(this uint position, [NotNull] IInterval <uint> baseInterval, InclusiveInterval <int> confidentInterval, double percentageDistance, uint basepairDistance) { var pd = (uint)Math.Round(baseInterval.GetLength() * percentageDistance, MidpointRounding.AwayFromZero); return(pd < basepairDistance ? position.ConvertPositionToInterval(pd, pd) : position.CalculateBasePairDistance(confidentInterval, basepairDistance)); }
private static int GetBinIndex([NotNull] IInterval <uint> interval, [NotNull] IReadOnlyList <uint> bins) { var length = interval.GetLength(); var i = bins.Count - 1; for (; i >= 0; i--) { if (bins[i] <= length) { return(i); } } return(i); }