public void GetJsonString_NullAnnotatedVariants() { const string originalChromosomeName = "originalChr1"; var position = GetPosition(originalChromosomeName, null, null); var annotatedPosition = new AnnotatedPosition(position, null); string observedResult = annotatedPosition.GetJsonString(); Assert.Null(observedResult); }
public void Only_canonical_transcripts_are_reported_in_vcf() { var mockedTranscript1 = new Mock <IAnnotatedTranscript>(); mockedTranscript1.Setup(x => x.Transcript.IsCanonical).Returns(true); mockedTranscript1.Setup(x => x.Transcript.Id).Returns(CompactId.Convert("ENST12345", 1)); mockedTranscript1.Setup(x => x.Transcript.Gene.Symbol).Returns("testGene1"); mockedTranscript1.SetupGet(x => x.Consequences) .Returns(new List <ConsequenceTag> { ConsequenceTag.five_prime_UTR_variant }); var mockedTranscript2 = new Mock <IAnnotatedTranscript>(); mockedTranscript2.Setup(x => x.Transcript.IsCanonical).Returns(false); mockedTranscript2.Setup(x => x.Transcript.Id).Returns(CompactId.Convert("ENST23456", 2)); mockedTranscript2.Setup(x => x.Transcript.Gene.Symbol).Returns("testGene2"); mockedTranscript2.SetupGet(x => x.Consequences) .Returns(new List <ConsequenceTag> { ConsequenceTag.missense_variant }); var mockedTranscript3 = new Mock <IAnnotatedTranscript>(); mockedTranscript3.Setup(x => x.Transcript.IsCanonical).Returns(true); mockedTranscript3.Setup(x => x.Transcript.Id).Returns(CompactId.Convert("NM_1234", 3)); mockedTranscript3.Setup(x => x.Transcript.Gene.Symbol).Returns("testGene3"); mockedTranscript3.SetupGet(x => x.Consequences) .Returns(new List <ConsequenceTag> { ConsequenceTag.missense_variant, ConsequenceTag.splice_region_variant }); var vcfFields = "chr1 101 sa123 A T . . .".Split("\t"); var chrom = new Chromosome("chr1", "1", 0); var inforData = new InfoData(null, null, VariantType.SNV, null, null, null, null, null, false, null, null, false, false, "", null, null); var position = new Position(chrom, 101, 101, "A", new[] { "T" }, 100, null, null, null, inforData, vcfFields, new[] { false }, false); var variant = new Variant(chrom, 101, 101, "A", "T", VariantType.SNV, null, false, false, false, null, null, new AnnotationBehavior(true, false, false, true, false, false)); var annotatedVariant = new AnnotatedVariant(variant); annotatedVariant.EnsemblTranscripts.Add(mockedTranscript1.Object); annotatedVariant.EnsemblTranscripts.Add(mockedTranscript2.Object); annotatedVariant.RefSeqTranscripts.Add(mockedTranscript3.Object); IAnnotatedVariant[] annotatedVariants = { annotatedVariant }; var annotatedPosition = new AnnotatedPosition(position, annotatedVariants); var converter = new VcfConversion(); var observedVcf = converter.Convert(annotatedPosition).Split("\t")[VcfCommon.InfoIndex]; Assert.Equal("CSQT=1|testGene1|ENST12345.1|5_prime_UTR_variant,1|testGene3|NM_1234.3|missense_variant&splice_region_variant", observedVcf); }
public void GetJsonString_DifferentOriginalChromosomeName() { const string originalChromosomeName = "originalChr1"; IVariant[] variants = GetVariants(); ISample[] samples = GetSamples(); IAnnotatedVariant[] annotatedVariants = Annotator.GetAnnotatedVariants(variants); var position = GetPosition(originalChromosomeName, variants, samples); var annotatedPosition = new AnnotatedPosition(position, annotatedVariants); string observedResult = annotatedPosition.GetJsonString(); Assert.NotNull(observedResult); Assert.Contains($"\"chromosome\":\"{originalChromosomeName}\"", observedResult); }
public void Original_dbsnp_nonrsid_get_kept() { var vcfFields = "chr1 101 sa123 A T . . .".Split("\t"); var chrom = new Chromosome("chr1", "1", 0); var inforData = new InfoData(null, null, VariantType.SNV, null, null, null, null, null, false, null, null, false, false, "", null, null); var position = new Position(chrom, 101, 101, "A", new[] { "T" }, 100, null, null, null, inforData, vcfFields, new[] { false }, false); var variant = new Variant(chrom, 101, 101, "A", "T", VariantType.SNV, null, false, false, false, null, null, new AnnotationBehavior(true, false, false, true, false, false)); var annotatedVariant = new AnnotatedVariant(variant); IAnnotatedVariant[] annotatedVariants = { annotatedVariant }; var annotatedPosition = new AnnotatedPosition(position, annotatedVariants); var converter = new VcfConversion(); var observedVcf = converter.Convert(annotatedPosition).Split("\t")[VcfCommon.IdIndex]; Assert.Equal("sa123", observedVcf); }
public void original_updated_info_is_added_to_info_field() { var vcfFields = "chr1 101 sa123 A . . . . .".Split("\t"); var chrom = new Chromosome("chr1", "1", 0); var inforData = new InfoData(null, null, VariantType.SNV, null, null, null, null, null, false, null, null, false, false, "Test=abc", null, null); var position = new Position(chrom, 101, 101, "A", new[] { "." }, 100, null, null, null, inforData, vcfFields, new[] { false }, false); var variant = new Variant(chrom, 101, 101, "A", ".", VariantType.reference, null, true, false, false, null, null, new AnnotationBehavior(true, false, false, true, false, false)); var annotatedVariant = new AnnotatedVariant(variant); IAnnotatedVariant[] annotatedVariants = { annotatedVariant }; var annotatedPosition = new AnnotatedPosition(position, annotatedVariants); var converter = new VcfConversion(); var observedVcf = converter.Convert(annotatedPosition).Split("\t")[VcfCommon.InfoIndex]; Assert.Equal("Test=abc;RefMinor", observedVcf); }
public void GetJsonString_fisherStrand() { const string vcfLine = "21\t9411410\t.\tC\tT\t9.51\tDRAGENSnpHardQUAL\tAC=2;AF=1.000;AN=2;DP=2;FS=0.000;MQ=100.00;QD=9.51;SOR=1.609"; var refMinorProvider = new Mock <IRefMinorProvider>(); var seqProvider = ParserTestUtils.GetSequenceProvider(9411410, "C", 'A', ChromosomeUtilities.RefNameToChromosome); var variantFactory = new VariantFactory(seqProvider.Sequence, new VariantId()); var position = AnnotationUtilities.ParseVcfLine(vcfLine, refMinorProvider.Object, seqProvider, null, variantFactory); IVariant[] variants = GetVariants(); IAnnotatedVariant[] annotatedVariants = Annotator.GetAnnotatedVariants(variants); var annotatedPosition = new AnnotatedPosition(position, annotatedVariants); string observedResult = annotatedPosition.GetJsonString(); Assert.NotNull(observedResult); Assert.Contains("\"fisherStrandBias\":0", observedResult); }
public void Original_dbsnp_nonrsid_merged_with_rsid_from_dbsnp() { var vcfFields = "chr1 101 sa123 A T . . .".Split("\t"); var chrom = new Chromosome("chr1", "1", 0); var inforData = new InfoData(null, null, VariantType.SNV, null, null, null, null, null, false, null, null, false, false, "", null, null); var position = new Position(chrom, 101, 101, "A", new[] { "T" }, 100, null, null, null, inforData, vcfFields, new[] { false }, false); var variant = new Variant(chrom, 101, 101, "A", "T", VariantType.SNV, null, false, false, false, null, null, new AnnotationBehavior(true, false, false, true, false, false)); var annotatedVariant = new AnnotatedVariant(variant); annotatedVariant.SupplementaryAnnotations.Add(new AnnotatedSaDataSource(new SaDataSource("dbsnp", "", "T", true, false, "rs456", null), "T")); IAnnotatedVariant[] annotatedVariants = { annotatedVariant }; var annotatedPosition = new AnnotatedPosition(position, annotatedVariants); var converter = new VcfConversion(); var observedVcf = converter.Convert(annotatedPosition).Split("\t")[VcfCommon.IdIndex]; Assert.Equal("sa123;rs456", observedVcf); }
public void OneKGAnnotation_is_handled() { var vcfFields = "chr1 101 sa123 A T . . .".Split("\t"); var chrom = new Chromosome("chr1", "1", 0); var inforData = new InfoData(null, null, VariantType.SNV, null, null, null, null, null, false, null, null, false, false, "", null, null); var position = new Position(chrom, 101, 101, "A", new[] { "T" }, 100, null, null, null, inforData, vcfFields, new[] { false }, false); var variant = new Variant(chrom, 101, 101, "A", "T", VariantType.SNV, null, false, false, false, null, null, new AnnotationBehavior(true, false, false, true, false, false)); var annotatedVariant = new AnnotatedVariant(variant); annotatedVariant.SupplementaryAnnotations.Add(new AnnotatedSaDataSource(new SaDataSource("oneKg", "AF1000G", "T", true, false, "0.000599;t", null), "T")); IAnnotatedVariant[] annotatedVariants = { annotatedVariant }; var annotatedPosition = new AnnotatedPosition(position, annotatedVariants); var converter = new VcfConversion(); var observedVcf = converter.Convert(annotatedPosition).Split("\t")[VcfCommon.InfoIndex]; Assert.Equal("AA=t;AF1000G=0.000599", observedVcf); }
public void Gmaf_outputed() { var vcfFields = "chr1 101 sa123 A T . . .".Split("\t"); var chrom = new Chromosome("chr1", "1", 0); var inforData = new InfoData(null, null, VariantType.SNV, null, null, null, null, null, false, null, null, false, false, "", null, null); var position = new Position(chrom, 101, 101, "A", new[] { "T" }, 100, null, null, null, inforData, vcfFields, new[] { false }, false); var variant = new Variant(chrom, 101, 101, "A", "T", VariantType.SNV, null, false, false, false, null, null, new AnnotationBehavior(true, false, false, true, false, false)); var annotatedVariant = new AnnotatedVariant(variant); annotatedVariant.SupplementaryAnnotations.Add(new AnnotatedSaDataSource(new SaDataSource("globalAllele", "GMAF", "N", false, false, "G|0.002", null), "N")); IAnnotatedVariant[] annotatedVariants = { annotatedVariant }; var annotatedPosition = new AnnotatedPosition(position, annotatedVariants); var converter = new VcfConversion(); var observedVcf = converter.Convert(annotatedPosition).Split("\t")[VcfCommon.InfoIndex]; Assert.Equal("GMAF=G|0.002", observedVcf); }
public void GetJsonString_BreakEndEventId() { const string vcfLine = "1\t38432782\tMantaBND:2312:0:1:0:0:0:0\tG\tG]6:28863899]\t971\tPASS\tSVTYPE=BND;MATEID=MantaBND:2312:0:1:0:0:0:1;EVENT=MantaBND:2312:0:1:0:0:0:0;JUNCTION_QUAL=716;BND_DEPTH=52;MATE_BND_DEPTH=56"; var refMinorProvider = new Mock <IRefMinorProvider>(); var seqProvider = ParserTestUtils.GetSequenceProvider(38432782, "G", 'C', ChromosomeUtilities.RefNameToChromosome); var variantFactory = new VariantFactory(seqProvider.Sequence, new VariantId()); var position = AnnotationUtilities.ParseVcfLine(vcfLine, refMinorProvider.Object, seqProvider, null, variantFactory); IVariant[] variants = GetVariants(); IAnnotatedVariant[] annotatedVariants = Annotator.GetAnnotatedVariants(variants); var annotatedPosition = new AnnotatedPosition(position, annotatedVariants); string observedResult = annotatedPosition.GetJsonString(); Assert.NotNull(observedResult); Assert.Contains("\"breakendEventId\":\"MantaBND:2312:0:1:0:0:0:0\"", observedResult); }
public void Only_allele_specific_entry_for_annotation_not_matched_by_allele_is_output() { var vcfFields = "chr1 101 sa123 A T . . .".Split("\t"); var chrom = new Chromosome("chr1", "1", 0); var inforData = new InfoData(null, null, VariantType.SNV, null, null, null, null, null, false, null, null, false, false, "", null, null); var position = new Position(chrom, 101, 101, "A", new[] { "T" }, 100, null, null, null, inforData, vcfFields, new[] { false }, false); var variant = new Variant(chrom, 101, 101, "A", "T", VariantType.SNV, null, false, false, false, null, null, new AnnotationBehavior(true, false, false, true, false, false)); var annotatedVariant = new AnnotatedVariant(variant); annotatedVariant.SupplementaryAnnotations.Add(new AnnotatedSaDataSource(new SaDataSource("testSource", "Test", "T", false, true, "pathogenic", null), "T")); annotatedVariant.SupplementaryAnnotations.Add(new AnnotatedSaDataSource(new SaDataSource("testSource", "Test", "G", false, true, "benign", null), "T")); IAnnotatedVariant[] annotatedVariants = { annotatedVariant }; var annotatedPosition = new AnnotatedPosition(position, annotatedVariants); var converter = new VcfConversion(); var observedVcf = converter.Convert(annotatedPosition).Split("\t")[VcfCommon.InfoIndex]; Assert.Equal("Test=1|pathogenic", observedVcf); }
public void GetJsonString_StrelkaSomatic() { const string vcfLine = "chr1 13813 . T G . LowQscore SOMATIC;QSS=33;TQSS=1;NT=ref;QSS_NT=16;TQSS_NT=1;SGT=TT->GT;DP=266;MQ=23.89;MQ0=59;ALTPOS=69;ALTMAP=37;ReadPosRankSum=1.22;SNVSB=5.92;PNOISE=0.00;PNOISE2=0.00;VQSR=1.93"; var refMinorProvider = new Mock <IRefMinorProvider>(); var seqProvider = ParserTestUtils.GetSequenceProvider(13813, "T", 'C', ChromosomeUtilities.RefNameToChromosome); var variantFactory = new VariantFactory(seqProvider.Sequence, new VariantId()); var position = AnnotationUtilities.ParseVcfLine(vcfLine, refMinorProvider.Object, seqProvider, variantFactory); IVariant[] variants = GetVariants(); IAnnotatedVariant[] annotatedVariants = Annotator.GetAnnotatedVariants(variants); var annotatedPosition = new AnnotatedPosition(position, annotatedVariants); string observedResult = annotatedPosition.GetJsonString(); Assert.NotNull(observedResult); Assert.Contains("\"jointSomaticNormalQuality\":16", observedResult); Assert.Contains("\"recalibratedQuality\":1.93", observedResult); }
public IAnnotatedPosition Annotate(IPosition position) { if (position == null) { return(null); } var annotatedVariants = GetAnnotatedVariants(position.Variants); var annotatedPosition = new AnnotatedPosition(position, annotatedVariants); if (annotatedPosition.AnnotatedVariants == null || annotatedPosition.AnnotatedVariants.Length == 0 || position.Chromosome.UcscName == "chrM" && !_annotateMito ) { return(annotatedPosition); } _sequenceProvider?.Annotate(annotatedPosition); _taProvider.Annotate(annotatedPosition); return(annotatedPosition); }