Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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);
        }