public void GetNextPosition() { const string vcfLine = "chr1 13133 . T C 36.00 PASS SNVSB=0.0;SNVHPOL=4 GT:GQ:GQX:DP:DPF:AD 0/1:62:20:7:1:3,4"; var lines = new[] { "##fileformat=VCFv4.1", "##FILTER=<ID=PASS,Description=\"All filters passed\">", "##fileDate=20160920", "#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT NHL-16", vcfLine }; AddLines(lines); var refMinorProvider = new Mock <IRefMinorProvider>(); var seqProvider = ParserTestUtils.GetSequenceProvider(13133, "T", 'A', ChromosomeUtilities.RefNameToChromosome); IPosition observedResult; using (var reader = FileUtilities.GetStreamReader(_ms)) using (var vcfReader = VcfReader.Create(reader, reader, seqProvider, refMinorProvider.Object, new NullRecomposer(), new NullVcfFilter(), _vidCreator, null)) { observedResult = vcfReader.GetNextPosition(); } var expectedResult = new Position(ChromosomeUtilities.Chr1, 13133, 13133, "T", new[] { "C" }, 36, new[] { "PASS" }, null, null, null, vcfLine.Split('\t'), new[] { false }, false); Assert.NotNull(observedResult); Assert.Equal(expectedResult.End, observedResult.End); Assert.Equal(expectedResult.AltAlleles, observedResult.AltAlleles); Assert.Equal(expectedResult.Filters, observedResult.Filters); Assert.Equal(expectedResult.Quality, observedResult.Quality); Assert.Equal(expectedResult.VcfFields, observedResult.VcfFields); }
public void ValidateVcfHeader_ExceptionThrown_NoChromHeaderLine() { var headers = new[] { "##fileformat=VCFv4.1", "##FILTER=<ID=PASS,Description=\"All filters passed\">", "##fileDate=20160920" }; AddLines(headers); var seqProvider = ParserTestUtils.GetSequenceProvider(1000, "A", 'T', _refNameToChromosome); var reader = FileUtilities.GetStreamReader(_ms); Assert.Throws <UserErrorException>(() => VcfReader.Create(reader, reader, seqProvider, null, null, new NullVcfFilter())); }
public void ValidateVcfHeader_ExceptionThrown_NoFileFormat() { var headers = new[] { "##Some comments", "#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT NHL-16 NHL-17"}; AddLines(headers); var seqProvider = ParserTestUtils.GetSequenceProvider(1000, "A", 'T', _refNameToChromosome); var reader = FileUtilities.GetStreamReader(_ms); Assert.Throws <UserErrorException>(() => VcfReader.Create(reader, reader, seqProvider, null, null, new NullVcfFilter())); }
public void CheckContigId_IncorrectAutoAndSexChromLength_ThrowException(string contigLine) { var headers = new[] { "##fileformat=VCFv4.1", contigLine, "#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT"}; AddLines(headers); var seqProvider = ParserTestUtils.GetSequenceProvider(1000, "A", 'T', _refNameToChromosome); using (var reader = FileUtilities.GetStreamReader(_ms)) Assert.Throws <UserErrorException>(() => VcfReader.Create(reader, reader, seqProvider, null, null, new NullVcfFilter())); }
public void CheckContigId_InferredAssemblyIsUnknown_GivenIrregularChrom(string contigLine) { var headers = new[] { "##fileformat=VCFv4.1", contigLine, "#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT"}; AddLines(headers); var seqProvider = ParserTestUtils.GetSequenceProvider(1000, "A", 'T', _refNameToChromosome); using (var reader = FileUtilities.GetStreamReader(_ms)) using (var vcfReader = VcfReader.Create(reader, reader, seqProvider, null, null, new NullVcfFilter())) { Assert.Equal(GenomeAssembly.Unknown, vcfReader.InferredGenomeAssembly); } }
public void Duplicated_headlines_are_removed() { var headers = new[] { "##fileformat=VCFv4.1", "##FILTER=<ID=PASS,Description=\"All filters passed\">", "##fileDate=20160920", "##dataSource=ClinVar,version:unknown,release date:2016-09-01", "#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT NHL-16 NHL-17"}; AddLines(headers); IEnumerable <string> observedHeaders; var seqProvider = ParserTestUtils.GetSequenceProvider(1000, "A", 'T', _refNameToChromosome); using (var reader = FileUtilities.GetStreamReader(_ms)) using (var vcfReader = VcfReader.Create(reader, reader, seqProvider, null, null, new NullVcfFilter())) { observedHeaders = vcfReader.GetHeaderLines(); } Assert.Equal(4, observedHeaders.Count()); }
public void HeaderLines_are_parsed() { var headers = new[] { "##fileformat=VCFv4.1", "##FILTER=<ID=PASS,Description=\"All filters passed\">", "##fileDate=20160920", "#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT NHL-16"}; AddLines(headers); IEnumerable <string> observedHeaders; var seqProvider = ParserTestUtils.GetSequenceProvider(1000, "A", 'T', _refNameToChromosome); using (var reader = FileUtilities.GetStreamReader(_ms)) using (var vcfReader = VcfReader.Create(reader, reader, seqProvider, null, null, new NullVcfFilter())) { observedHeaders = vcfReader.GetHeaderLines(); } Assert.Equal(headers, observedHeaders.ToArray()); }
public void Sample_names_are_reported() { var headers = new[] { "##fileformat=VCFv4.1", "##FILTER=<ID=PASS,Description=\"All filters passed\">", "##fileDate=20160920", "#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT NHL-16 NHL-17"}; AddLines(headers); string[] samples; var seqProvider = ParserTestUtils.GetSequenceProvider(1000, "A", 'T', _refNameToChromosome); using (var reader = FileUtilities.GetStreamReader(_ms)) using (var vcfReader = VcfReader.Create(reader, reader, seqProvider, null, null, new NullVcfFilter())) { samples = vcfReader.GetSampleNames(); } Assert.Equal(new[] { "NHL-16", "NHL-17" }, samples); }
private static VcfReader GetVcfReader(Stream headerStream, Stream vcfStream, IAnnotationResources annotationResources, IVcfFilter vcfFilter, IMitoHeteroplasmyProvider mitoHeteroplasmyProvider) { var vcfReader = FileUtilities.GetStreamReader(vcfStream); StreamReader headerReader; if (headerStream == null) { headerReader = vcfReader; } else { headerReader = FileUtilities.GetStreamReader(headerStream); vcfStream.Position = Tabix.VirtualPosition.From(annotationResources.InputStartVirtualPosition).BlockOffset; } return(VcfReader.Create(headerReader, vcfReader, annotationResources.SequenceProvider, annotationResources.RefMinorProvider, annotationResources.Recomposer, vcfFilter, annotationResources.VidCreator, mitoHeteroplasmyProvider)); }
public void CheckSampleConsistency_noSample() { const string vcfLine1 = "chr1 13133 . T C 36.00 PASS SNVSB=0.0;SNVHPOL=4"; const string vcfLine2 = "chr1 13133 . T A 36.00 PASS SNVSB=0.0;SNVHPOL=4 GT:GQ:GQX:DP:DPF:AD 0/1:62:20:7:1:3,4"; var lines = new[] { "##fileformat=VCFv4.1", "##FILTER=<ID=PASS,Description=\"All filters passed\">", "##fileDate=20160920", "#CHROM POS ID REF ALT QUAL FILTER INFO", vcfLine1, vcfLine2 }; AddLines(lines); var refMinorProvider = new Mock <IRefMinorProvider>(); var seqProvider = ParserTestUtils.GetSequenceProvider(13133, "T", 'A', ChromosomeUtilities.RefNameToChromosome); using (var reader = FileUtilities.GetStreamReader(_ms)) using (var vcfReader = VcfReader.Create(reader, reader, seqProvider, refMinorProvider.Object, new NullRecomposer(), new NullVcfFilter(), _vidCreator, null)) { //first line is valid. So, no exception Assert.NotNull(vcfReader.GetNextPosition()); // second line has invalid number of sample fields, so it will throw exception Assert.Throws <UserErrorException>(() => vcfReader.GetNextPosition()); } }