CanvasCommon.CopyNumberOracle.GetKnownCNForSegment C# (CSharp) Метод

GetKnownCNForSegment() публичный Метод

public GetKnownCNForSegment ( CanvasSegment segment ) : int
segment CanvasSegment
Результат int
        public int GetKnownCNForSegment(CanvasSegment segment)
        {
            // Handle switched chromosome naming convention transparently:
            string chr = segment.Chr;
            if (!this.KnownCN.ContainsKey(segment.Chr))
            {
                chr = segment.Chr.Replace("chr", "");
                if (!this.KnownCN.ContainsKey(chr))
                {
                    chr = "chr" + segment.Chr;
                    if (!this.KnownCN.ContainsKey(chr)) return -1;
                }
            }
            int CN = -1;
            foreach (CNInterval interval in this.KnownCN[chr])
            {
                if (interval.End < segment.Begin) continue;
                if (interval.Start > segment.End) continue;
                int start = Math.Max(segment.Begin, interval.Start);
                int end = Math.Min(segment.End, interval.End);
                if ((end - start) * 2 >= (segment.End - segment.Begin))
                {
                    CN = interval.CN;
                    break;
                }
            }
            return CN;
        }