public void Variant_Set() { var expectedChromosome = new Chromosome("chr1", "1", 0); const int expectedStart = 100; const int expectedEnd = 102; const string expectedRef = "AT"; const string expectedAlt = ""; const VariantType expectedType = VariantType.deletion; const string expectedVid = "1:100:A:C"; const bool expectedRefMinor = true; const bool expectedDecomposed = false; const bool expectedRecomposed = true; var expectedLinkedVids = new[] { "1:102:T:G" }; var expectedBreakEnds = new IBreakEnd[] { new BreakEnd(expectedChromosome, expectedChromosome, 100, 200, false, false) }; var expectedBehavior = new AnnotationBehavior(false, false, false, false, true); var variant = new Variant(expectedChromosome, expectedStart, expectedEnd, expectedRef, expectedAlt, expectedType, expectedVid, expectedRefMinor, expectedDecomposed, expectedRecomposed, expectedLinkedVids, expectedBreakEnds, expectedBehavior); Assert.Equal(expectedChromosome, variant.Chromosome); Assert.Equal(expectedStart, variant.Start); Assert.Equal(expectedEnd, variant.End); Assert.Equal(expectedRef, variant.RefAllele); Assert.Equal(expectedAlt, variant.AltAllele); Assert.Equal(expectedType, variant.Type); Assert.Equal(expectedVid, variant.VariantId); Assert.Equal(expectedRefMinor, variant.IsRefMinor); Assert.Equal(expectedDecomposed, variant.IsDecomposed); Assert.Equal(expectedRecomposed, variant.IsRecomposed); Assert.Equal(expectedLinkedVids, variant.LinkedVids); Assert.Equal(expectedBreakEnds, variant.BreakEnds); Assert.Equal(expectedBehavior, variant.Behavior); }
public void ComputeGeneFusions_ReturnNull_NoFusions() { var chromosome = new Chromosome("chr1", "1", 0); var chromosome2 = new Chromosome("chr6", "6", 5); var transcriptId = CompactId.Convert("ENST00000491426", 2); var transcriptId2 = CompactId.Convert("ENST00000313382", 9); var breakEnds = new IBreakEnd[] { new BreakEnd(chromosome, chromosome2, 31410878, 42248252, true, false) }; var transcriptRegions = new ITranscriptRegion[] { new TranscriptRegion(TranscriptRegionType.Exon, 1, 144890592, 144904679, 1, 670) }; var transcriptRegions2 = new ITranscriptRegion[] { new TranscriptRegion(TranscriptRegionType.Exon, 1, 144851424, 145040002, 1, 8150) }; var transcript = new Mock <ITranscript>(); transcript.SetupGet(x => x.Chromosome).Returns(chromosome); transcript.SetupGet(x => x.Gene.OnReverseStrand).Returns(true); transcript.SetupGet(x => x.Gene.Symbol).Returns("PDE4DIP"); transcript.SetupGet(x => x.Translation.CodingRegion).Returns(new CodingRegion(144890975, 144904679, 1, 287, 287)); transcript.SetupGet(x => x.Start).Returns(144890592); transcript.SetupGet(x => x.End).Returns(144904679); transcript.SetupGet(x => x.Source).Returns(Source.Ensembl); transcript.SetupGet(x => x.Id).Returns(transcriptId); transcript.SetupGet(x => x.TranscriptRegions).Returns(transcriptRegions); var transcript2 = new Mock <ITranscript>(); transcript2.SetupGet(x => x.Chromosome).Returns(chromosome2); transcript2.SetupGet(x => x.Gene.OnReverseStrand).Returns(true); transcript2.SetupGet(x => x.Gene.Symbol).Returns("PDE4DIP"); transcript2.SetupGet(x => x.Translation.CodingRegion).Returns(new CodingRegion(144852458, 145039609, 394, 7116, 6723)); transcript2.SetupGet(x => x.Start).Returns(144852458); transcript2.SetupGet(x => x.End).Returns(145039609); transcript2.SetupGet(x => x.Source).Returns(Source.Ensembl); transcript2.SetupGet(x => x.Id).Returns(transcriptId2); transcript2.SetupGet(x => x.TranscriptRegions).Returns(transcriptRegions2); var fusedTranscriptCandidates = new[] { transcript2.Object }; var observedResult = GeneFusionUtilities.GetGeneFusionAnnotation(breakEnds, transcript.Object, fusedTranscriptCandidates); Assert.Null(observedResult); }
internal IBreakEnd[] GetSvBreakEnds(string ensemblName, int start, VariantType svType, int?svEnd, bool isInv3, bool isInv5) { if (svEnd == null) { return(null); } var end = svEnd.Value; var breakEnds = new IBreakEnd[2]; var chromosome = ReferenceNameUtilities.GetChromosome(_refNameToChromosome, ensemblName); // ReSharper disable once SwitchStatementMissingSomeCases switch (svType) { case VariantType.deletion: breakEnds[0] = new BreakEnd(chromosome, chromosome, start, end + 1, false, true); breakEnds[1] = new BreakEnd(chromosome, chromosome, end + 1, start, true, false); break; case VariantType.tandem_duplication: case VariantType.duplication: breakEnds[0] = new BreakEnd(chromosome, chromosome, end, start, false, true); breakEnds[1] = new BreakEnd(chromosome, chromosome, start, end, true, false); break; case VariantType.inversion: if (isInv3) { breakEnds[0] = new BreakEnd(chromosome, chromosome, start, end, false, false); breakEnds[1] = new BreakEnd(chromosome, chromosome, end, start, false, false); break; } if (isInv5) { breakEnds[0] = new BreakEnd(chromosome, chromosome, start + 1, end + 1, true, true); breakEnds[1] = new BreakEnd(chromosome, chromosome, end + 1, start + 1, true, true); break; } breakEnds[0] = new BreakEnd(chromosome, chromosome, start, end, false, false); breakEnds[1] = new BreakEnd(chromosome, chromosome, end + 1, start + 1, true, true); break; default: return(null); } return(breakEnds); }
public void ComputeGeneFusions_ReturnOneGeneFusion() { var chromosome = new Chromosome("chr1", "1", 0); var transcriptId = CompactId.Convert("ENST00000367819", 2); var transcriptId2 = CompactId.Convert("ENST00000367818", 3); var breakEnds = new IBreakEnd[] { new BreakEnd(chromosome, chromosome, 168512199, 168548478, false, false), new BreakEnd(chromosome, chromosome, 168548478, 168512199, false, false) }; var transcriptRegions = new ITranscriptRegion[] { new TranscriptRegion(TranscriptRegionType.Exon, 3, 168510003, 168510358, 210, 565), new TranscriptRegion(TranscriptRegionType.Intron, 2, 168510359, 168511230, 95, 210), new TranscriptRegion(TranscriptRegionType.Exon, 2, 168511231, 168511345, 95, 209), new TranscriptRegion(TranscriptRegionType.Intron, 1, 168511346, 168513141, 94, 95), new TranscriptRegion(TranscriptRegionType.Exon, 1, 168513142, 168513235, 1, 94) }; var transcriptRegions2 = new ITranscriptRegion[] { new TranscriptRegion(TranscriptRegionType.Exon, 1, 168545711, 168545936, 1, 226), new TranscriptRegion(TranscriptRegionType.Intron, 1, 168545937, 168549300, 226, 227), new TranscriptRegion(TranscriptRegionType.Exon, 2, 168549301, 168549415, 227, 341), new TranscriptRegion(TranscriptRegionType.Intron, 2, 168549416, 168550289, 341, 342), new TranscriptRegion(TranscriptRegionType.Exon, 3, 168550290, 168551315, 342, 1367) }; var transcript = new Mock <ITranscript>(); transcript.SetupGet(x => x.Chromosome).Returns(chromosome); transcript.SetupGet(x => x.Gene.OnReverseStrand).Returns(true); transcript.SetupGet(x => x.Gene.Symbol).Returns("XCL2"); transcript.SetupGet(x => x.Translation.CodingRegion).Returns(new CodingRegion(168510190, 168513202, 34, 378, 345)); transcript.SetupGet(x => x.Start).Returns(168510003); transcript.SetupGet(x => x.End).Returns(168513235); transcript.SetupGet(x => x.Source).Returns(Source.Ensembl); transcript.SetupGet(x => x.Id).Returns(transcriptId); transcript.SetupGet(x => x.TranscriptRegions).Returns(transcriptRegions); var transcript2 = new Mock <ITranscript>(); transcript2.SetupGet(x => x.Chromosome).Returns(chromosome); transcript2.SetupGet(x => x.Gene.OnReverseStrand).Returns(false); transcript2.SetupGet(x => x.Gene.Symbol).Returns("XCL1"); transcript2.SetupGet(x => x.Translation.CodingRegion).Returns(new CodingRegion(168545876, 168550458, 166, 510, 345)); transcript2.SetupGet(x => x.Start).Returns(168545711); transcript2.SetupGet(x => x.End).Returns(168551315); transcript2.SetupGet(x => x.Source).Returns(Source.Ensembl); transcript2.SetupGet(x => x.Id).Returns(transcriptId2); transcript2.SetupGet(x => x.TranscriptRegions).Returns(transcriptRegions2); var fusedTranscriptCandidates = new[] { transcript2.Object }; var expectedGeneFusions = new IGeneFusion[] { new GeneFusion(null, 1, "XCL1{ENST00000367818.3}:c.1_62-823_XCL2{ENST00000367819.2}:c.62-854_345") }; var observedResult = GeneFusionUtilities.GetGeneFusionAnnotation(breakEnds, transcript.Object, fusedTranscriptCandidates); Assert.Single(observedResult.GeneFusions); Assert.Equal(expectedGeneFusions[0].Exon, observedResult.GeneFusions[0].Exon); Assert.Equal(expectedGeneFusions[0].Intron, observedResult.GeneFusions[0].Intron); Assert.Equal(expectedGeneFusions[0].HgvsCoding, observedResult.GeneFusions[0].HgvsCoding); }