public void TestSplitCommonCNVPartOverlapsCanvasCNV() { // scenario: Canvas segment part overlaps common segment and comes first // canvasSegment: -------------- // commonSegment: ------------ var counts = new List <SampleGenomicBin> { new SampleGenomicBin("chr1", 100000, 100001, 100), new SampleGenomicBin("chr1", 150000, 150001, 90), new SampleGenomicBin("chr1", 200000, 200001, 110), new SampleGenomicBin("chr1", 250000, 250001, 100), new SampleGenomicBin("chr1", 300000, 300001, 95), new SampleGenomicBin("chr1", 350000, 350001, 105), new SampleGenomicBin("chr1", 400000, 400001, 105), new SampleGenomicBin("chr1", 450000, 450001, 105), new SampleGenomicBin("chr1", 500000, 500001, 105) }; var canvasSegments = new List <CanvasSegment> { new CanvasSegment("chr1", 100000, 250001, counts.Take(4).ToList()), new CanvasSegment("chr1", 300000, 500001, counts.Skip(4).Take(5).ToList()) }; var commonSegments = new List <CanvasSegment> { new CanvasSegment("chr1", 200000, 350001, counts.Skip(2).Take(4).ToList()) }; var canvasSegmentsIndex = 0; var commonSegmentsIndex = 0; const int defaultReadCountsThreshold = 4; var haplotypeSegments = CanvasSegment.SplitCanvasSegments(canvasSegments, commonSegments, defaultReadCountsThreshold, ref canvasSegmentsIndex, ref commonSegmentsIndex); // transform into "haplotype" segments // canvasSegment: -------------- -------- // commonSegment: --------- ------------ Assert.Equal(2, haplotypeSegments.SetA.Count); Assert.Equal(2, haplotypeSegments.SetB.Count); }
public void TestSplitSeveralCommonCNVOverlapsCanvasCNV() { // scenario: Canvas segment spans more than one common segment // canvasSegment: ------------------------------------------------ // commonSegment: ------------ ------------------- var counts = new List <SampleGenomicBin> { new SampleGenomicBin("chr1", 100000, 100001, 100), new SampleGenomicBin("chr1", 150000, 150001, 90), new SampleGenomicBin("chr1", 200000, 200001, 110), new SampleGenomicBin("chr1", 250000, 250001, 100), new SampleGenomicBin("chr1", 300000, 300001, 95), new SampleGenomicBin("chr1", 350000, 350001, 105), new SampleGenomicBin("chr1", 400000, 400001, 105), new SampleGenomicBin("chr1", 450000, 450001, 105), new SampleGenomicBin("chr1", 500000, 500001, 105) }; var canvasSegments = new List <CanvasSegment> { new CanvasSegment("chr1", 100000, 500002, counts), }; var commonSegments = new List <CanvasSegment> { new CanvasSegment("chr1", 200000, 250001, counts.Skip(2).Take(2).ToList()), new CanvasSegment("chr1", 400000, 450001, counts.Skip(4).Take(2).ToList()), }; var canvasSegmentsIndex = 0; var commonSegmentsIndex = 0; const int defaultReadCountsThreshold = 4; var haplotypeSegments = CanvasSegment.SplitCanvasSegments(canvasSegments, commonSegments, defaultReadCountsThreshold, ref canvasSegmentsIndex, ref commonSegmentsIndex); // transform into "haplotype" segments // canvasSegment: ------------------------------------------------ // commonSegment: --------- ------------ ------------------- Assert.Single(haplotypeSegments.SetA); Assert.Equal(3, haplotypeSegments.SetB.Count); }