public void ReferenceCopyNumberByPloidy_IsExcluded()
        {
            var calculator = new CopyNumberBedGraphCalculator();
            var segments   = new List <CanvasSegment>
            {
                new CanvasSegment("chrX", 0, 1, new List <SampleGenomicBin>
                {
                    new SampleGenomicBin("chrX", 0, 1, 3f)
                })
                {
                    CopyNumber           = 1,
                    MajorChromosomeCount = 1,
                    Filter = CanvasFilter.PassFilter
                }
            };
            var ploidyInfo = new PloidyInfo {
                PloidyByChromosome = ("chrX", new PloidyInterval("chr1")
                {
                    Start = 0, End = 1, Ploidy = 1
                }.Yield().ToList()).Yield().ToDictionary()
            };

            var results = calculator.Calculate(segments, ploidyInfo).ToList();

            Assert.Empty(results);
        }
        public void NoSegments_ReturnsNoBedGraphEntries()
        {
            var calculator = new CopyNumberBedGraphCalculator();
            var segments   = Enumerable.Empty <CanvasSegment>().ToList();
            var ploidyInfo = new PloidyInfo();

            var results = calculator.Calculate(segments, ploidyInfo);

            Assert.Empty(results);
        }
        public void ReferenceCopyNumber_IsExcluded()
        {
            var calculator = new CopyNumberBedGraphCalculator();
            var segments   = new List <CanvasSegment>
            {
                new CanvasSegment("chr1", 0, 1, new List <SampleGenomicBin>
                {
                    new SampleGenomicBin("chr1", 0, 1, 3f)
                })
                {
                    CopyNumber = 2,
                    Filter     = CanvasFilter.PassFilter
                }
            };
            var ploidyInfo = new PloidyInfo();

            var results = calculator.Calculate(segments, ploidyInfo).ToList();

            Assert.Empty(results);
        }
        public void FiltersNonPassSegments()
        {
            var calculator = new CopyNumberBedGraphCalculator();
            var segments   = new List <CanvasSegment>
            {
                new CanvasSegment("chr1", 0, 1, new List <SampleGenomicBin>
                {
                    new SampleGenomicBin("chr1", 0, 1, 3f)
                })
                {
                    CopyNumber = 0,
                    Filter     = CanvasFilter.Create("NonPass".Yield())
                }
            };
            var ploidyInfo = new PloidyInfo();

            var results = calculator.Calculate(segments, ploidyInfo);

            Assert.Empty(results);
        }
        public void LOH_IsIncluded()
        {
            var calculator = new CopyNumberBedGraphCalculator();
            var segments   = new List <CanvasSegment>
            {
                new CanvasSegment("chr1", 0, 1, new List <SampleGenomicBin>
                {
                    new SampleGenomicBin("chr1", 0, 1, 3f)
                })
                {
                    CopyNumber           = 2,
                    MajorChromosomeCount = 2,
                    Filter = CanvasFilter.PassFilter
                }
            };
            var ploidyInfo = new PloidyInfo();

            var results = calculator.Calculate(segments, ploidyInfo).ToList();

            Assert.Equal(2m, results.First().Value);
        }
        public void VariantCopyNumber_ReturnsCopyNumber()
        {
            var calculator = new CopyNumberBedGraphCalculator();
            var segments   = new List <CanvasSegment>
            {
                new CanvasSegment("chr1", 0, 1, new List <SampleGenomicBin>
                {
                    new SampleGenomicBin("chr1", 0, 1, 3f)
                })
                {
                    CopyNumber = 1,
                    Filter     = CanvasFilter.PassFilter
                }
            };
            var ploidyInfo = new PloidyInfo();

            var results = calculator.Calculate(segments, ploidyInfo).ToList();

            Assert.Equal("chr1", results.First().Chromosome);
            Assert.Equal(new BedInterval(0, 1), results.First().Interval);
            Assert.Equal(1m, results.First().Value);
        }