Example #1
0
        public void GetCdnaPositionOffset_Gap_Forward_ReturnNull()
        {
            var regions = new ITranscriptRegion[]
            {
                new TranscriptRegion(TranscriptRegionType.Gap, 1, 134901, 135802, 1760, 2661)
            };

            var translation = new Mock <ITranslation>();

            translation.SetupGet(x => x.CodingRegion).Returns(new CodingRegion(138530, 139309, 71, 850, 780));

            var transcript = new Mock <ITranscript>();

            transcript.SetupGet(x => x.Start).Returns(134901);
            transcript.SetupGet(x => x.End).Returns(139379);
            transcript.SetupGet(x => x.Gene.OnReverseStrand).Returns(false);
            transcript.SetupGet(x => x.TranscriptRegions).Returns(regions);
            transcript.SetupGet(x => x.Translation).Returns(translation.Object);

            var po = HgvsUtilities.GetCdnaPositionOffset(transcript.Object, 135001, 0, false);

            Assert.NotNull(po);
            Assert.True(po.HasStopCodonNotation);
            Assert.Equal(0, po.Offset);
            Assert.Equal(1760, po.Position);
            Assert.Equal("*910", po.Value);
        }
Example #2
0
        public void GetCdnaPositionOffset_Intron_LeqR_Reverse()
        {
            var regions = new ITranscriptRegion[]
            {
                new TranscriptRegion(TranscriptRegionType.Exon, 2, 134901, 135802, 1760, 2661),
                new TranscriptRegion(TranscriptRegionType.Intron, 1, 135803, 137619, 1759, 1760),
                new TranscriptRegion(TranscriptRegionType.Exon, 1, 137620, 139379, 1, 1759)
            };

            var translation = new Mock <ITranslation>();

            translation.SetupGet(x => x.CodingRegion).Returns(new CodingRegion(138530, 139309, 71, 850, 780));

            var transcript = new Mock <ITranscript>();

            transcript.SetupGet(x => x.Start).Returns(134901);
            transcript.SetupGet(x => x.End).Returns(139379);
            transcript.SetupGet(x => x.Gene.OnReverseStrand).Returns(true);
            transcript.SetupGet(x => x.TranscriptRegions).Returns(regions);
            transcript.SetupGet(x => x.Translation).Returns(translation.Object);

            var po = HgvsUtilities.GetCdnaPositionOffset(transcript.Object, 136711, 1, true);

            Assert.NotNull(po);
            Assert.True(po.HasStopCodonNotation);
            Assert.Equal(909, po.Offset);
            Assert.Equal(1759, po.Position);
            Assert.Equal("*909+909", po.Value);
        }
Example #3
0
        public void GetCdnaPositionOffset_Intron_ReqL_Reverse()
        {
            var regions = new ITranscriptRegion[]
            {
                new TranscriptRegion(TranscriptRegionType.Intron, 10, 108901173, 108918171, 422, 423)
            };

            var translation = new Mock <ITranslation>();

            translation.SetupGet(x => x.CodingRegion).Returns(new CodingRegion(108813927, 108941437, 129, 1613, 1485));

            var transcript = new Mock <ITranscript>();

            transcript.SetupGet(x => x.Start).Returns(108810721);
            transcript.SetupGet(x => x.End).Returns(108918171);
            transcript.SetupGet(x => x.Gene.OnReverseStrand).Returns(true);
            transcript.SetupGet(x => x.TranscriptRegions).Returns(regions);
            transcript.SetupGet(x => x.Translation).Returns(translation.Object);

            var po = HgvsUtilities.GetCdnaPositionOffset(transcript.Object, 108909672, 0, true);

            Assert.NotNull(po);
            Assert.False(po.HasStopCodonNotation);
            Assert.Equal(8500, po.Offset);
            Assert.Equal(422, po.Position);
            Assert.Equal("294+8500", po.Value);
        }
Example #4
0
        public void GetCdnaPositionOffset_Exon_Reverse()
        {
            var transcript = HgvsCodingNomenclatureTests.GetReverseTranscript();
            var po         = HgvsUtilities.GetCdnaPositionOffset(transcript, 137721, 2, true);

            Assert.NotNull(po);
            Assert.True(po.HasStopCodonNotation);
            Assert.Equal(0, po.Offset);
            Assert.Equal(1659, po.Position);
            Assert.Equal("*809", po.Value);
        }
Example #5
0
        public void GetCdnaPositionOffset_Exon_Forward()
        {
            var transcript = HgvsCodingNomenclatureTests.GetForwardTranscript();
            var po         = HgvsUtilities.GetCdnaPositionOffset(transcript, 1262627, 4, true);

            Assert.NotNull(po);
            Assert.False(po.HasStopCodonNotation);
            Assert.Equal(0, po.Offset);
            Assert.Equal(540, po.Position);
            Assert.Equal("129", po.Value);
        }
Example #6
0
        public void GetCdnaPositionOffset_Intron_LeqR_Forward()
        {
            var transcript = HgvsCodingNomenclatureTests.GetForwardTranscript();
            var po         = HgvsUtilities.GetCdnaPositionOffset(transcript, 1261349, 1, true);

            Assert.NotNull(po);
            Assert.False(po.HasStopCodonNotation);
            Assert.Equal(867, po.Offset);
            Assert.Equal(336, po.Position);
            Assert.Equal("-76+867", po.Value);
        }
Example #7
0
        public void GetCdnaPositionOffset_Gap_RightSide_Reverse()
        {
            var transcript = GetReverseGapTranscript();
            var po         = HgvsUtilities.GetCdnaPositionOffset(transcript, 1103, 1, false);

            Assert.NotNull(po);
            Assert.False(po.HasStopCodonNotation);
            Assert.Equal(0, po.Offset);
            Assert.Equal(200, po.Position);
            Assert.Equal("150", po.Value);
        }
Example #8
0
        public void GetCdnaPositionOffset_Gap_RightSide_Forward()
        {
            var transcript = GetForwardGapTranscript();
            var po         = HgvsUtilities.GetCdnaPositionOffset(transcript, 1102, 1, true);

            Assert.NotNull(po);
            Assert.False(po.HasStopCodonNotation);
            Assert.Equal(0, po.Offset);
            Assert.Equal(101, po.Position);
            Assert.Equal("51", po.Value);
        }
Example #9
0
        public void GetCdnaPositionOffset_Intron_LltR_Reverse()
        {
            var transcript = HgvsCodingNomenclatureTests.GetReverseTranscript();
            var po         = HgvsUtilities.GetCdnaPositionOffset(transcript, 136000, 1, true);

            Assert.NotNull(po);
            Assert.True(po.HasStopCodonNotation);
            Assert.Equal(-198, po.Offset);
            Assert.Equal(1760, po.Position);
            Assert.Equal("*910-198", po.Value);
        }
Example #10
0
        public void GetCdnaPositionOffset_Intron_RltL_Reverse()
        {
            var transcript = HgvsCodingNomenclatureTests.GetReverseTranscript();
            var po         = HgvsUtilities.GetCdnaPositionOffset(transcript, 137619, 1, true);

            Assert.NotNull(po);
            Assert.True(po.HasStopCodonNotation);
            Assert.Equal(2, po.Offset);
            Assert.Equal(1759, po.Position);
            Assert.Equal("*909+2", po.Value);
        }
Example #11
0
        public void GetCdnaPositionOffset_Intron_RltL_Forward()
        {
            var transcript = HgvsCodingNomenclatureTests.GetForwardTranscript();
            var po         = HgvsUtilities.GetCdnaPositionOffset(transcript, 1262210, 1);

            Assert.NotNull(po);
            Assert.False(po.HasStopCodonNotation);
            Assert.Equal(-6, po.Offset);
            Assert.Equal(337, po.Position);
            Assert.Equal("-75-6", po.Value);
        }
Example #12
0
        private static (string Hgvs, bool IsTranscriptSuffix) GetBreakEndHgvs(ITranscript transcript, int regionIndex,
                                                                              int position, bool isGenomicSuffix)
        {
            var positionOffset     = HgvsUtilities.GetCdnaPositionOffset(transcript, position, regionIndex);
            var isTranscriptSuffix = isGenomicSuffix != transcript.Gene.OnReverseStrand;
            var codingRegionLength = transcript.Translation.CodingRegion.CdnaEnd - transcript.Translation.CodingRegion.CdnaStart + 1;
            var hgvsPosString      = isTranscriptSuffix ? positionOffset.Value + "_" + codingRegionLength : 1 + "_" + positionOffset.Value;

            var hgvs = transcript.Gene.Symbol + "{" + transcript.Id.WithVersion + "}" + ":c." + hgvsPosString;

            return(hgvs, isTranscriptSuffix);
        }
        private static (string Begin, string End) AdjustSecond(BreakPointTranscript second)
        {
            var codingRegion       = second.Transcript.Translation.CodingRegion;
            int position           = second.GenomicPosition;
            int codingRegionLength = codingRegion.CdnaEnd - codingRegion.CdnaStart + 1;

            if (position < codingRegion.Start)
            {
                return((position - codingRegion.Start).ToString(), "?");
            }
            if (position > codingRegion.End)
            {
                return((position - codingRegion.End + codingRegionLength).ToString(), "?");
            }
            return(HgvsUtilities.GetCdnaPositionOffset(second.Transcript, position, second.RegionIndex).Value, codingRegionLength.ToString());
        }
        private static (string Begin, string End) AdjustFirst(BreakPointTranscript first)
        {
            var codingRegion       = first.Transcript.Translation.CodingRegion;
            int position           = first.GenomicPosition;
            int codingRegionLength = codingRegion.CdnaEnd - codingRegion.CdnaStart + 1;

            if (position < codingRegion.Start)
            {
                return("?", (position - codingRegion.Start).ToString());
            }
            if (position > codingRegion.End)
            {
                return("?", (position - codingRegion.End + codingRegionLength).ToString());
            }
            return("1", HgvsUtilities.GetCdnaPositionOffset(first.Transcript, position, first.RegionIndex).Value);
        }