Beispiel #1
0
        public void FastForward_EnsemblNamingStyle_ChangeReaderStateCorrectly()
        {
            var annotationRange = new GenomicRange(new GenomicPosition(ChromosomeUtilities.Chr1, 100), new GenomicPosition(ChromosomeUtilities.Chr1, 200));

            var vcfFilter = new VcfFilter(annotationRange);

            const string firstLineInRange = "1\t100\t.\tC\tT\t165.00\tPASS\tSNVSB=-12.5;SNVHPOL=2\tGT:GQ:GQX:DP:DPF:AD\t0/1:119:35:25:0:8,17";

            using (var ms = new MemoryStream())
            {
                using (var writer = new StreamWriter(ms, Encoding.UTF8, 1024, true))
                {
                    writer.WriteLine("#Header line 1");
                    writer.WriteLine("#Header line 2");
                    writer.WriteLine("#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO\tFORMAT\tMother");
                    writer.WriteLine("2\t150\t.\tG\tA\t5.00\tLowGQXHetSNP\tSNVSB=0.0;SNVHPOL=2\tGT:GQ:GQX:DP:DPF:AD\t0/1:3:1:1:0:0,1");
                    writer.WriteLine("1\t90\t.\tT\tC\t1.00\tLowGQXHetSNP\tSNVSB=0.0;SNVHPOL=2\tGT:GQ:GQX:DP:DPF:AD\t0/1:23:9:3:0:2,1");
                    writer.WriteLine("1\t95\t.\tA\tT\t2.00\tLowGQXHetSNP\tSNVSB=0.0;SNVHPOL=2\tGT:GQ:GQX:DP:DPF:AD\t0/1:23:9:3:0:2,1");
                    writer.WriteLine(firstLineInRange);
                    writer.WriteLine("1\t102\t.\tC\tA\t3.00\tLowGQXHetSNP\tSNVSB=0.0;SNVHPOL=5\tGT:GQ:GQX:DP:DPF:AD\t0/1:29:2:2:0:1,1");
                }

                ms.Position = 0;

                using (var reader = new StreamReader(ms))
                {
                    vcfFilter.FastForward(reader);
                    Assert.Equal(firstLineInRange, vcfFilter.BufferedLine);
                }
            }
        }
Beispiel #2
0
        public void PassedTheEnd_AsExpected()
        {
            var annotationRange = new GenomicRange(new GenomicPosition(ChromosomeUtilities.Chr1, 100), new GenomicPosition(ChromosomeUtilities.Chr1, 200));
            var vcfFilter       = new VcfFilter(annotationRange);

            Assert.False(vcfFilter.PassedTheEnd(ChromosomeUtilities.Chr1, 150));
            Assert.False(vcfFilter.PassedTheEnd(ChromosomeUtilities.Chr1, 200));
            Assert.True(vcfFilter.PassedTheEnd(ChromosomeUtilities.Chr1, 201));
            Assert.True(vcfFilter.PassedTheEnd(ChromosomeUtilities.Chr2, 150));
        }
Beispiel #3
0
        public void GetNextLine_NoBufferedLine_ReadNextLine()
        {
            var vcfFilter = new VcfFilter(null);

            using (var ms = new MemoryStream(Encoding.UTF8.GetBytes("first line\nsecond line\n")))
                using (var reader = new StreamReader(ms))
                {
                    string nextLine = vcfFilter.GetNextLine(reader);
                    Assert.Equal("first line", nextLine);
                }
        }
Beispiel #4
0
        public void PassedTheEnd_AsExpected()
        {
            var chromosome      = new Chromosome("chr1", "1", 0);
            var annotationRange = new GenomicRange(new GenomicPosition(chromosome, 100), new GenomicPosition(chromosome, 200));
            var vcfFilter       = new VcfFilter(annotationRange);

            Assert.False(vcfFilter.PassedTheEnd(new Chromosome("chr1", "1", 0), 150));
            Assert.False(vcfFilter.PassedTheEnd(new Chromosome("chr1", "1", 0), 200));
            Assert.True(vcfFilter.PassedTheEnd(new Chromosome("chr1", "1", 0), 201));
            Assert.True(vcfFilter.PassedTheEnd(new Chromosome("chr2", "2", 1), 150));
        }
Beispiel #5
0
        public void GetNextLine_ReturnBufferedLine()
        {
            const string bufferedLine = "I am buffered";
            var          vcfFilter    = new VcfFilter(null)
            {
                BufferedLine = bufferedLine
            };

            string nextLine = vcfFilter.GetNextLine(null);

            Assert.Equal(bufferedLine, nextLine);
        }