Exemple #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);
        }
Exemple #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);
        }
Exemple #3
0
        internal static ITranscript GetReverseTranscript()
        {
            // get info from "ENST00000423372.3
            var regions = new ITranscriptRegion[]
            {
                new TranscriptRegion(TranscriptRegionType.Exon, 2, 134901, 135802, 1760, 2661),
                new TranscriptRegion(TranscriptRegionType.Intron, 1, 135803, 137620, 1759, 1760),
                new TranscriptRegion(TranscriptRegionType.Exon, 1, 137621, 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.Id).Returns(CompactId.Convert("ENST00000423372", 3));
            transcript.SetupGet(x => x.Chromosome).Returns(Chromosome);
            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);
            transcript.SetupGet(x => x.TotalExonLength).Returns(2661);
            return(transcript.Object);
        }
Exemple #4
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);
        }
Exemple #5
0
        private static ITranscript GetForwardGapTranscript()
        {
            var regions = new ITranscriptRegion[]
            {
                new TranscriptRegion(TranscriptRegionType.Exon, 1, 1001, 1100, 1, 100),
                new TranscriptRegion(TranscriptRegionType.Gap, 1, 1101, 1103, 100, 101),
                new TranscriptRegion(TranscriptRegionType.Exon, 1, 1104, 1203, 101, 200),
                new TranscriptRegion(TranscriptRegionType.Intron, 1, 1204, 1303, 200, 201),
                new TranscriptRegion(TranscriptRegionType.Exon, 2, 1304, 1403, 201, 300)
            };

            var translation = new Mock <ITranslation>();

            translation.SetupGet(x => x.CodingRegion).Returns(new CodingRegion(1051, 1353, 51, 250, 200));

            var transcript = new Mock <ITranscript>();

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

            return(transcript.Object);
        }
        public void GetTranscriptRegions_Reverse()
        {
            var chromosome = new Chromosome("chr1", "1", 0);

            var exons = new[]
            {
                new MutableExon(chromosome, 20977055, 20977207, 1),
                new MutableExon(chromosome, 20976856, 20977050, 1)
            };

            var introns = new IInterval[]
            {
                new Interval(20977051, 20977054)
            };

            var cdnaMaps = new[]
            {
                new MutableTranscriptRegion(TranscriptRegionType.Exon, 0, 20977055, 20977207, 1, 153),
                new MutableTranscriptRegion(TranscriptRegionType.Exon, 0, 20976856, 20977050, 154, 348)
            };

            var expectedRegions = new ITranscriptRegion[]
            {
                new TranscriptRegion(TranscriptRegionType.Exon, 2, 20976856, 20977050, 154, 348),
                new TranscriptRegion(TranscriptRegionType.Intron, 1, 20977051, 20977054, 153, 154),
                new TranscriptRegion(TranscriptRegionType.Exon, 1, 20977055, 20977207, 1, 153)
            };

            var observedRegions = TranscriptRegionMerger.GetTranscriptRegions(cdnaMaps, exons, introns, true);

            Assert.Equal(3, observedRegions.Length);
            Assert.Equal(expectedRegions, observedRegions, _comparer);
        }
Exemple #7
0
 private static bool TranscriptRegionEquals(ITranscriptRegion x, ITranscriptRegion y)
 {
     return(x.Start == y.Start &&
            x.End == y.End &&
            x.CdnaStart == y.CdnaStart &&
            x.CdnaEnd == y.CdnaEnd);
 }
        public void Create()
        {
            // ENST00000374673.3
            var sequence = new SimpleSequence(
                "GGGGTGTGTCTCCAGGGCCTTCCGCACTCAGCCAGGGAGAGCAAACAAACAGGCTTGGGGGACTGGGGAGGGGGGAAAGCGGAGGGGCAGGGTAGGGGCGGGGCAGGAGTGGAAGGCGGGGCAGGAGCAAGCGGCCTGGGCAGGGCAAGGGGGCCTCAGCTGGACCCTCGGATACTCACGGCAGTTGGCTTCATCAGTTCGGTCCTCACAGTCAAAGTCACCATCGCAGCGCCACAGCTTGAGGGCACAATGTCCATTCCCGCAGGGGAACTCGTTGGGCTCACAGGGTGGCGGGGGGCCTAGGAGACCGGGCAGGGGTCAGCAGCATCCTCCCGGGCCAGCTTCCTGCTCCCCGCACCCACCTGCACCCCTGCCGGTGCGCACCACAGTCTAGCTCATCGCTGCCGTCCTCGCAGTCCTCCTGTCCGTCGCAGAGGTAGTCTCTGGGGATGCAGTGCCCATTGCGGCATGCGGCCTCCTGGGGCCCACAGGGCAGGGGCCTGACGGAACCGGGAAGCAGGGGCTGAGGAGCGTGGGTGACTGGTGGCTGTCGCATGATGGTTGTCTCTGGCCGGGGCGGTAAAGATGTCGTCTCCACAAGGAGAGAGAATGTGGGGCTGATACCCAGGACTGGCTCCTCTGTGGATAGATTCCGCTTGGCATTTGGCAGAAGCAGATGGCTCCTCACCTGCTCCTTGTCCCCAACCCTCCCCAGGCCCACCCTGTACTCCCCAACACCACTCCCTGCCACCCCCTGCCTGGCTCTGTCATCACCCTTCCTATGCCCCCATCCTCTGCCTGCACCAAACCCTCATAGTCCTTGATGGGCTCCAAGACCCAGGTGTAGGACCCTGGCCCTCCCCTGGCACCCAAACCACTCGTGGCCCCGGACATCCCCTCACCACAATTGAGCTCATCAGACATGTCCCTGCAGTCGGGCCGCCGGTCACAGCGATACTCCAGGGCCACACACTCATTGTAGCTGTGGCAGGCAAACTCGGCCTCCGTGCAGGCTCTTGGGAACTGGGGCACTGCAGGTGGAAAGGAAGCAGACTGGAGTCAGAGGCGGCAGGAGGCAGGTGCGGGAAGCTGTAGGTGCTGTGTGGCTGGAGTGGGCTCCAGGGCCCTGTGTCAGGCAGCTCGGTTTCTGGCAGGCACAACGAGGGCAAGCAGCACACACTAGACACATCCACAGCACACGTGGGGCATGGGACATGCGGCAGTGGCCTCCCCCATCTCTAAAACAGACCCCACACACAGTTGACATGCCACACGCATGCAACCACCACACCACACACATGCAGGCCACAGCCTGGCCCAGTGAGGACAAAGAAGGAGGGGAGAAGGGAGTGCCCAGCTGTCTTGGGCTGTGCCCAGCCAGCCATCTTGCCCACACCCTTCTTTCCTCTCCATCCTTTAAAAAATTTTTTTCTCTCTTCTTTTTTATTTTTTTAGAGACAGGGTCTTGCTACGTTGCCCAAGCTGGTCTCGAACTCTTTGCCTCAAGCAATCCTCCCGTCTTGGCCTCCCAAAGTGCTGGGGTTACAGGCGTGAGCCCCTGCACCCGGCCTCCTCTCCAACCTTAACTTCTCTAGGAACCTGGCTGGGCCTCGGCCTGGCTTACACTCTCACCTGGTGTCACTGCGACCGCCACAGCGGCCGGCGGGGGTGGGGGGGTCTGTGCTGGAAAGGAAGATGTGATCAGTGGCTGTTCCACCTGGGAGCCGGGAGCTGAGGGCTGCAGGGCTGGGCCACATTCCACCATCCCTAGCCAGGAGGACTTATTGAAAAGTGAGAGAGGAGGGCTGGACCCCCAGCAGTCTTTAGACCTGGGCCTGATGATGCAGAAGAGCAAGCTTGATCTCTGGGTGCAATAATTAAGGGTTTTTGTTTGTTTGTCTTGTTTTAGAGGCAGGGTTTTGCTCTGTCGCCCAGGCTGGAGTGCAGTGGCATGATCCTAGCTCACTGCAGCCTCAAACTCCTGGGCTCCGGTGATCCTC",
                22213528);

            var codingRegion = new CodingRegion(22213728, 22215214, 1, 538, 538);

            var regions = new ITranscriptRegion[]
            {
                new TranscriptRegion(TranscriptRegionType.Exon, 4, 22213728, 22213827, 439, 538),
                new TranscriptRegion(TranscriptRegionType.Intron, 3, 22213828, 22213912, 438, 439),
                new TranscriptRegion(TranscriptRegionType.Exon, 3, 22213913, 22214167, 184, 438),
                new TranscriptRegion(TranscriptRegionType.Intron, 2, 22214166, 22214430, 183, 184),
                new TranscriptRegion(TranscriptRegionType.Exon, 2, 22214431, 22214559, 55, 183),
                new TranscriptRegion(TranscriptRegionType.Intron, 1, 22214560, 22215160, 54, 55),
                new TranscriptRegion(TranscriptRegionType.Exon, 1, 22215161, 22215214, 1, 54)
            };

            const string expectedResults = "NCAGCACAGACCCCCCCACCCCCGCCGGCCGCTGTGGCGGTCGCAGTGACACCAGTGCCCCAGTTCCCAAGAGCCTGCACGGAGGCCGAGTTTGCCTGCCACAGCTACAATGAGTGTGTGGCCCTGGAGTATCGCTGTGACCGGCGGCCCGACTGCAGGGACATGTCTGATGAGCTCAATTGTGAGGAGCCAGTCCTGGGTATCAGCCCCACATTCTCTCTCCTTGTGGAGACGACATCTTTACCGCCCCGGCCAGAGACAACCATCATGCGACAGCCACCAGTCACCCACGCTCCTCAGCCCCTGCTTCCCGGTTCCGTCAGGCCCCTGCCCTGTGGGCCCCAGGAGGCCGCATGCCGCAATGGGCACTGCATCCCCAGAGACTACCTCTGCGACGGACAGGAGGACTGCGAGGACGGCAGCGATGAGCTAGACTGTGGCCCCCCGCCACCCTGTGAGCCCAACGAGTTCCCCTGCGGGAATGGACATTGTGCCCTCAAGCTGTGGCGCTGCGATGGTGACTTTGACTGTGAGGACCG";
            var          codingSequence  = new CodingSequence(sequence, codingRegion, regions, true, 1);
            var          observedResults = codingSequence.Substring(0, expectedResults.Length);

            Assert.Equal(expectedResults, observedResults);
        }
Exemple #9
0
        public void With_rnaEdits_reverse_deletion_utr()
        {
            //NM_001317107.1 chr14:22138125-22139232
            var genomicSeq   = new SimpleSequence("ATATGGTATGTAACTTATTCTTTGCAAGGCGCTTCTTTAATTTGGAGCACCACGTATCCTAAGGACGTAGACATTTTCATTTTTCTTCTTTTCTCTCTTTTCTCCCCACTAACTTGTTTAAGGCACTCTTCATTTCTTCATTCCTAAGGGTATAGATAATGGGGTTCAGCAGGGGGGTGACTGCAGTGAAAAACACAGATACTGCCTTGTCCTCTGGGAGGCTGGTGGATGGGCGGGAATAGATGAAGATGCAGTGTCCCAGGAACAGTGTAACTACAGTGAGATGGGCTGCACAGGTGGACAGGGCCTTCCACTTGCCCTTGGAGATCTGCTGCCTCAGACTCACCAGGATGACTGCGTAGGACACCACCAGGACCACAAAACAGACCACGGAGATCAATCCACTGTTGGAGACAATGAGGATCTCAAGGACGTGGGTGTGTCAATGCAGGCCAGCTTGATCACCTGAGGTACATCACAGAAGAAGTTGTCAATCTCATCAGGACCACAGTAGGGCAGCTTGATGGTAAGGGAGGTGAGGGCTATGGAGTGGATGGTCCCTCCTGTCCAGAGGGCCACAGCCAGCAGCACACATACCTTCCAGTTCATCACTATCATGTACTGCAGGGGTTTACAGATGGCCACATACCGATCATAGGCCATGACGGTGAGGAGGAAGATCTCTGTGCAGGCAAAGAGGTGCAGGAAGAACATCTGGGTCACACAGGCATCAAAAGAGATGAGCTTTTCCTCTGACCACACGTCTCTCAGCATCTTGGGGACAGTGACAGTGGAGTGGCAGACATCAATAAAGGACAGGTTGCTGAGGAAGAAATACATGGGAGTATGGAGCCGGTGGTCATAGATAATAGTTATGACAATGAGAACATTCCCAATCAGTGTCAGGACATAAAAAATGAGGAACATGGAAAACATAGCTATCCGTGCCTTATGATTTACAGATAAACCTCTAAGCCGAAAATATGTCACTAAAGAAGTTTGATTGAGTAGGATGGCCTCTTCCATTCTCTTTGTTAGACAACCTGTAAAGAATTAGAAAAAAAGTCTAATATAACACAGTATCTGCATCAATCATTTGGTCATTTAA", 22138125 - 1);
            var codingRegion = new CodingRegion(22138201, 22139150, 83, 1030, 948);

            var regions = new ITranscriptRegion[]
            {
                new TranscriptRegion(TranscriptRegionType.Exon, 1, 22138125, 22138561, 670, 1106),
                new TranscriptRegion(TranscriptRegionType.Gap, 1, 22138562, 22138563, 669, 670),
                new TranscriptRegion(TranscriptRegionType.Exon, 1, 22138564, 22139232, 1, 669)
            };

            var rnaEdits = new IRnaEdit[]
            {
                new RnaEdit(905, 905, "T"),
                new RnaEdit(796, 796, "C"),
                new RnaEdit(679, 679, "A"),
                new RnaEdit(670, 671, "")
            };

            const byte startExonPhase = 0;
            var        codingSequence = new CdnaSequence(genomicSeq, codingRegion, regions, true, rnaEdits);

            var expectedCodingSeq = "ATGGAAGAGGCCATCCTACTCAATCAAACTTCTTTAGTGACATATTTTCGGCTTAGAGGTTTATCTGTAAATCATAAGGCACGGATAGCTATGTTTTCCATGTTCCTCATTTTTTATGTCCTGACACTGATTGGGAATGTTCTCATTGTCATAACTATTATCTATGACCACCGGCTCCATACTCCCATGTATTTCTTCCTCAGCAACCTGTCCTTTATTGATGTCTGCCACTCCACTGTCACTGTCCCCAAGATGCTGAGAGACGTGTGGTCAGAGGAAAAGCTCATCTCTTTTGATGCCTGTGTGACCCAGATGTTCTTCCTGCACCTCTTTGCCTGCACAGAGATCTTCCTCCTCACCGTCATGGCCTATGATCGGTATGTGGCCATCTGTAAACCCCTGCAGTACATGATAGTGATGAACTGGAAGGTATGTGTGCTGCTGGCTGTGGCCCTCTGGACAGGAGGGACCATCCACTCCATAGCCCTCACCTCCCTTACCATCAAGCTGCCCTACTGTGGTCCTGATGAGATTGACAACTTCTTCTGTGATGTACCTCAGGTGATCAAGCTGGCCTGCATTGACACCCACGTCATTGAGATCCTCATTGTCTCCAACAGTGGATTGATCTCCGTGGTCTGTTTTGTGGTCCTGGTGGTGTCCTACGCAGTCATCCTGGTGAGTCTGAGGCAGCAGATCTCCAAGGGCAAGCGGAAGGCCCTGTCCACCTGTGCAGCCCATCTCACTGTAGTTACACTGTTCCTGGGACACTGCATCTTCATCTATTCCCGCCCATCCACCAGCCTCCCAGAGGACAAGGTAGTATCTGTGTTTTTCACTGCAGTCACCCCCCTGCTGAACCCCATTATCTATACCCTTAGGAATGAAGAAATGAAGAGTGCCTTAAACAAGTTAGTGGGGAGAAAAGAGAGAAAAGAAGAAAAATGA";

            Assert.Equal(expectedCodingSeq, codingSequence.GetCdnaSequence().Substring(codingRegion.CdnaStart - 1, codingRegion.Length));
        }
Exemple #10
0
        public void RnaEdits_in_coding_sequence_reverse_insertion()
        {
            //NM_000682.6, chrom: chr2:96778623-96781984
            var genomicSeq   = new SimpleSequence("CTTATTACAAAATATCCTTTATTGATAAAATAGCTCAGAGTTTAAAAAAAAAAAAAACACCACCTGCATGTCGCAATAAGAGGTCACAGGCAAGAACACTGGGGGTCCCATGGGGCGCACACAAGACCGGCCAGCAGAGGGTCACAGTCAGTCCCTCTCCTGGCCCAGCTCCCCACCACATCCCAGGGCGATACTCTGGCCTCAACAACCCACTGAGGACCAAGCTGGGAAGCCTCCCACACCCCAGGAAGGACTCTTTTTGGTCCCCTCCATTCTCTCTACACCCAGAAAACTCCCTCGGTGCCCTTCCAAATCTAGCAGGTCCATCTGGCCCATTCCCCCGACACCTGCCAAGCTAAGATGCCTACTGGCCCAATGTTGAAGCCAGGCCCTCTCCAAGGGAAGGCCGATAAACCTCCTTTCCACACTTCCAACTGTTCTGGGTGCCAGGTTTTGGGGTGGGACTGAGAACCAGGAAGCAGGGGTCCTCAATGCACAGCCCCATCAGCATTGCGGGGAGCAGCGTGGCTGGGTCCGAGGCAGTCCACAAGCACCCACCTGGGGGGATCAGTTGTGGTTCACAAGGACTCATTTGGGGCTTGGAGACCTGGCCGGGCACTCCAGTGGGAGGCTCCCCTAGGGGCGCACCAGGCTCTGATGCCAGTACCCCACCTGGGGGCGCTGCCACCTGTCACAGGCTCTCATCTTAGACTGTTGCCGAGGTGTGGATATTTTGAGCTGTCTTGGGGAGACAATTTGCCTCCTTGATGACAAAAGACTTATCCCCCACTGGGGAGACCCAAGCCACTAAAAACCCTCTTGGTGTTGCCGGTGAAATGTCGAAACGTTGTCATGTAGCGTAATAACTCAGACCTTTGCAGCCAGAAGAACACATTCTCAAAGAGATCCTTTAACTTGAAATAGTGATTCTGTCTGCCACTCCCGGCTTCCAGTTCGGGGTAGGAATTCACACACCCCAGGGACAGAACAAAAGTCTACAGGAAGACAGGTGGTGGTAAACACAGAGGAAAGGGATTTTTATATCACCATATAATCACATTTTTGGTTCTCTAGTGTGTTCCCCCACAGAGCTCAAAGCTTTCTGCAAAGCCTTTCATCTCCCTGCAGCAAGTAGGCAGTGAGCTATTGTCGCCCCGATTTTTGCAGGGGGTGAATGCCAGTGATCGGGGATCTCCCGTCGAGGCAGAGACCAGGCCTCCAAGACCGCCCCAGCGAGGCATCCACGTGGCCACCCACCTACCGGAGGGGTGCTGGGTAAGGAAGCCGATCCATTGTTCTGGCTTTCAAAGGAACCACAGATCCGAAAACAGGCAAAGGGGGAAAGGAGGGCCCAGAGACGATGCCACCCCATAAGCCCCCATCCCAGCGCCTGCCAGGGACCGCGAGTGCCTAGCGTGGGTGATCAGTCTTCGTTTCTTCCTCCCCCTCAGCAGCAGGCCCCACTGGGAAAAGTGGAAGGCTGGCTCCGTGCTCTTTGTGGGTGGGGGGGAGATGAAAAAGAAACGAAAACACCACAAGCAAGTGACCTGCCAGGAACACAAGGTCCTCAAGAAAGGGAAGCCCAGACATTGGTCTGGAGAGCATGGGGCTCTGGGAAGAAAGTGCTCTCTCTTCTCCTGGTCTTGGCTATGTTCCAGAGGATTTGAACCACCTCCATCGGCCTGTGCTCAGGGAGAGGGTGGAGAAGGGGTCCCCCACAGCTAAGCCGGCAAGGGGAAGCTTCACTGGGACCCTTGCTAGCAGCCCCCCTGCCCACCCCTCCCAAGGGGTTCCTAAGATGAGGCCTACAGGATCTGGGCAGGGAGCAGAAAGCCCAGGGGAGGCAGCCACACACAGCAGGGCAAGAAGCAGGGTGACCCCGGCGCCACCGCACCAACCCCACAGGGGCAGCGCAGGCGGGCTCACCAGGCCGTCTGGGTCCACGGGCGGCACAGGATCCTCCGGAAGGCACGGCGGAAGTCCTGGTTGAAGATGGTGTAGATAACAGGGTTCAGTGAGCTGTTGCAGTAGCCGATCCAGAAGAAGAACTGGAAGAGGCCATGGGGCACCTTGCAGTGCTTCGGGCAGATGGCTCCCAGGCTGTAGCTGAAGAAGAAGGGGAACCAGCAGAGCACAAAAACGCCAATGACCACAGCCAGCACGAAGGTGAAGCGCTTCTCCCGGGTCAGCTGCGCCCGTCGACGCCACCACTGCCCACCTATAGCACCCACGCCCCTGCCCAGGAGCACCTGGCCACGTAGGGTGGCCAGCACCCGGGAGCCCTGTGGCTGCTGCAGCGGGGGGCTGCAAGCTGAGGCCGGAGACACTGGCACTGCCTGGGGTTCACACTCTTCCTCCTCCTCCTCCTCCTCTTCAGCTTCATCCTCTGGAGATGCCCCACAAACACCCTCCTTCTGGCCCTGGCCTGAGTTGGGAAGGGCAGCCCAACTGGGTGGCAAGGCCCGGGTCCCAGTATCTTCAGGGGTCTCCCCCTCCTCCTTCTCCCCAGTGGACTTCGAGTGTCCGTTGACCTCTCTGGCAGAAGCCACAGAGGCCAGGGCTGGCAGTTTGGCTGAGGCCAAAGCCCCACCATGGTCGGGTCGGGGCTGCTTGGACTCACCCTGCCCAGGCCCCCCCTTGGCCCTGGGACCTCTGCGGTTGCTGCGTTTGGCGATCAGGTAGATGCGCAGGTAGACAAGGATCATGATGAGGCAAGGAGCAAAGAAAGATCCGATGCTGGAGGCCAGGATGTACCAGGCCTCCTGGTTGAGCTTGCACTGGGGGCGCCCGCGCGGCTGGGGGCCCTGGTCGCCCTTGTAGATGAGGGGCGGCAGCGAGATGACGGCGGCGATGAGCCACACAGTGAGGATGATGCACTTGATGCGGCGCGGGGTGCGCTTGGAGTTGTACTCCAGCGCGCGGCTCACGGCCCAGTAGCGGTCCAGGCTGATGGCGCACAGGTGCACGATGGACGAGGTGCAGAAGAGCACGTCGAGCGCCAGGTACACCTCGCACCACGTGCGCCGGAAGTACCAGTAGCCCAGCAGCTCGTTGGCCAGCGAGAAAGGGATGATGAGCGTGGCCACCAGGATGTCGGCGGCGGCCAGCGACACCAGGAACAGGTTCTGAGGGGCGCGCAGCGAGCGGCTGGTCAACACAGCCAGGATGACCAGAGCGTTGCCGAAGATGGTAAAGAGAATGAGGAAGGTGATGGCCGCCGCTATGGCCGCTGTGGCCTGCACGGAGTAGGGGTCCTGGTGGTCCATGACGGGGCGGGAGGTGGGCAGAGGGAGCGCTGCCCGCCCAGTGCGCACCGTGGACGACAGCGCTGCCCGGCTCGGCTAGACAAGAGCGTCGCCCCT", 96778623 - 1);
            var codingRegion = new CodingRegion(96780545, 96781888, 97, 1449, 1344);

            var regions = new ITranscriptRegion[]
            {
                new TranscriptRegion(TranscriptRegionType.Exon, 1, 96778623, 96780986, 1008, 3371),
                new TranscriptRegion(TranscriptRegionType.Exon, 1, 96780987, 96781984, 1, 998)
            };

            var rnaEdits = new IRnaEdit[]
            {
                new RnaEdit(999, 998, "AGAGGAGGA")
            };
            const byte startExonPhase  = 0;
            const bool onReverseStrand = true;
            var        codingSequence  = new CdnaSequence(genomicSeq, codingRegion, regions, onReverseStrand, rnaEdits);

            var expectedCodingSeq = "ATGGACCACCAGGACCCCTACTCCGTGCAGGCCACAGCGGCCATAGCGGCGGCCATCACCTTCCTCATTCTCTTTACCATCTTCGGCAACGCTCTGGTCATCCTGGCTGTGTTGACCAGCCGCTCGCTGCGCGCCCCTCAGAACCTGTTCCTGGTGTCGCTGGCCGCCGCCGACATCCTGGTGGCCACGCTCATCATCCCTTTCTCGCTGGCCAACGAGCTGCTGGGCTACTGGTACTTCCGGCGCACGTGGTGCGAGGTGTACCTGGCGCTCGACGTGCTCTTCTGCACCTCGTCCATCGTGCACCTGTGCGCCATCAGCCTGGACCGCTACTGGGCCGTGAGCCGCGCGCTGGAGTACAACTCCAAGCGCACCCCGCGCCGCATCAAGTGCATCATCCTCACTGTGTGGCTCATCGCCGCCGTCATCTCGCTGCCGCCCCTCATCTACAAGGGCGACCAGGGCCCCCAGCCGCGCGGGCGCCCCCAGTGCAAGCTCAACCAGGAGGCCTGGTACATCCTGGCCTCCAGCATCGGATCTTTCTTTGCTCCTTGCCTCATCATGATCCTTGTCTACCTGCGCATCTACCTGATCGCCAAACGCAGCAACCGCAGAGGTCCCAGGGCCAAGGGGGGGCCTGGGCAGGGTGAGTCCAAGCAGCCCCGACCCGACCATGGTGGGGCTTTGGCCTCAGCCAAACTGCCAGCCCTGGCCTCTGTGGCTTCTGCCAGAGAGGTCAACGGACACTCGAAGTCCACTGGGGAGAAGGAGGAGGGGGAGACCCCTGAAGATACTGGGACCCGGGCCTTGCCACCCAGTTGGGCTGCCCTTCCCAACTCAGGCCAGGGCCAGAAGGAGGGTGTTTGTGGGGCATCTCCAGAGGATGAAGCTGAAGAGGAGGAAGAGGAGGAGGAGGAGGAGGAAGAGTGTGAACCCCAGGCAGTGCCAGTGTCTCCGGCCTCAGCTTGCAGCCCCCCGCTGCAGCAGCCACAGGGCTCCCGGGTGCTGGCCACCCTACGTGGCCAGGTGCTCCTGGGCAGGGGCGTGGGTGCTATAGGTGGGCAGTGGTGGCGTCGACGGGCGCAGCTGACCCGGGAGAAGCGCTTCACCTTCGTGCTGGCTGTGGTCATTGGCGTTTTTGTGCTCTGCTGGTTCCCCTTCTTCTTCAGCTACAGCCTGGGAGCCATCTGCCCGAAGCACTGCAAGGTGCCCCATGGCCTCTTCCAGTTCTTCTTCTGGATCGGCTACTGCAACAGCTCACTGAACCCTGTTATCTACACCATCTTCAACCAGGACTTCCGCCGTGCCTTCCGGAGGATCCTGTGCCGCCCGTGGACCCAGACGGCCTGGTGA";

            var rnaEditLength = rnaEdits[0].Bases.Length;

            Assert.Equal(expectedCodingSeq, codingSequence.GetCdnaSequence().Substring(codingRegion.CdnaStart - 1, codingRegion.Length + rnaEditLength));
        }
Exemple #11
0
 private void WriteExon(ITranscriptRegion exon, IRequiredFields requiredFields, IGeneralAttributes attribs,
                        IInterval codingRegion)
 {
     _writer.WriteExonicRegion(exon, requiredFields, attribs, exon.Id, "exon");
     WriteCds(codingRegion, exon, requiredFields, attribs);
     WriteUtr(codingRegion, exon, requiredFields, attribs);
 }
Exemple #12
0
        internal static ITranscript GetForwardTranscript()
        {
            // get info from ENST00000343938.4
            var regions = new ITranscriptRegion[]
            {
                new TranscriptRegion(TranscriptRegionType.Exon, 1, 1260147, 1260482, 1, 336),
                new TranscriptRegion(TranscriptRegionType.Intron, 1, 1260483, 1262215, 336, 337),
                new TranscriptRegion(TranscriptRegionType.Exon, 2, 1262216, 1262412, 337, 533),
                new TranscriptRegion(TranscriptRegionType.Intron, 2, 1262413, 1262620, 533, 534),
                new TranscriptRegion(TranscriptRegionType.Exon, 3, 1262621, 1264277, 534, 2190)
            };

            var translation = new Mock <ITranslation>();

            translation.SetupGet(x => x.CodingRegion).Returns(new CodingRegion(1262291, 1263143, 412, 1056, 645));

            var transcript = new Mock <ITranscript>();

            transcript.SetupGet(x => x.Id).Returns(CompactId.Convert("ENST00000343938", 4));
            transcript.SetupGet(x => x.Chromosome).Returns(Chromosome);
            transcript.SetupGet(x => x.Start).Returns(1260147);
            transcript.SetupGet(x => x.End).Returns(1264277);
            transcript.SetupGet(x => x.Gene.OnReverseStrand).Returns(false);
            transcript.SetupGet(x => x.TranscriptRegions).Returns(regions);
            transcript.SetupGet(x => x.Translation).Returns(translation.Object);
            transcript.SetupGet(x => x.TotalExonLength).Returns(2190);
            return(transcript.Object);
        }
 private static bool HasExonRegionOverlap(ITranscriptRegion region, IInterval variant)
 {
     if (region == null || region.Type != TranscriptRegionType.Exon)
     {
         return(false);
     }
     return(region.Overlaps(variant));
 }
Exemple #14
0
        private void WriteCds(IInterval codingRegion, ITranscriptRegion exon, IRequiredFields requiredFields, IGeneralAttributes attribs)
        {
            if (!GffUtilities.HasCds(codingRegion, exon))
            {
                return;
            }
            var cds = GffUtilities.GetCdsCoordinates(codingRegion, exon);

            _writer.WriteExonicRegion(cds, requiredFields, attribs, exon.Id, "CDS");
        }
        public void GetTranscriptRegions_TwoExonsNoGap_Forward()
        {
            var chromosome = new Chromosome("chr12", "12", 11);

            var exons = new[]
            {
                new MutableExon(chromosome, 7079944, 7080253, 1),
                new MutableExon(chromosome, 7083501, 7083602, 2),
                new MutableExon(chromosome, 7083714, 7083855, 2),
                new MutableExon(chromosome, 7084252, 7084310, 1),
                new MutableExon(chromosome, 7084391, 7084540, 2),
                new MutableExon(chromosome, 7084858, 7085165, 2)
            };

            var introns = new IInterval[]
            {
                new Interval(7080254, 7083500),
                new Interval(7083603, 7083713),
                new Interval(7083856, 7084251),
                new Interval(7084311, 7084390),
                new Interval(7084541, 7084857)
            };

            var cdnaMaps = new[]
            {
                new MutableTranscriptRegion(TranscriptRegionType.Exon, 0, 7079944, 7080212, 1, 269),
                new MutableTranscriptRegion(TranscriptRegionType.Exon, 0, 7080213, 7080253, 271, 311),
                new MutableTranscriptRegion(TranscriptRegionType.Exon, 0, 7083501, 7083602, 312, 413),
                new MutableTranscriptRegion(TranscriptRegionType.Exon, 0, 7083714, 7083855, 414, 555),
                new MutableTranscriptRegion(TranscriptRegionType.Exon, 0, 7084252, 7084310, 556, 614),
                new MutableTranscriptRegion(TranscriptRegionType.Exon, 0, 7084391, 7084540, 615, 764),
                new MutableTranscriptRegion(TranscriptRegionType.Exon, 0, 7084858, 7085165, 765, 1072)
            };

            var expectedRegions = new ITranscriptRegion[]
            {
                new TranscriptRegion(TranscriptRegionType.Exon, 1, 7079944, 7080212, 1, 269),
                new TranscriptRegion(TranscriptRegionType.Exon, 1, 7080213, 7080253, 271, 311),
                new TranscriptRegion(TranscriptRegionType.Intron, 1, 7080254, 7083500, 311, 312),
                new TranscriptRegion(TranscriptRegionType.Exon, 2, 7083501, 7083602, 312, 413),
                new TranscriptRegion(TranscriptRegionType.Intron, 2, 7083603, 7083713, 413, 414),
                new TranscriptRegion(TranscriptRegionType.Exon, 3, 7083714, 7083855, 414, 555),
                new TranscriptRegion(TranscriptRegionType.Intron, 3, 7083856, 7084251, 555, 556),
                new TranscriptRegion(TranscriptRegionType.Exon, 4, 7084252, 7084310, 556, 614),
                new TranscriptRegion(TranscriptRegionType.Intron, 4, 7084311, 7084390, 614, 615),
                new TranscriptRegion(TranscriptRegionType.Exon, 5, 7084391, 7084540, 615, 764),
                new TranscriptRegion(TranscriptRegionType.Intron, 5, 7084541, 7084857, 764, 765),
                new TranscriptRegion(TranscriptRegionType.Exon, 6, 7084858, 7085165, 765, 1072)
            };

            var observedRegions = TranscriptRegionMerger.GetTranscriptRegions(cdnaMaps, exons, introns, false);

            Assert.Equal(12, observedRegions.Length);
            Assert.Equal(expectedRegions, observedRegions, _comparer);
        }
Exemple #16
0
        public GeneFusionUtilitiesTests()
        {
            IGene mzt2BGene = new Gene(ChromosomeUtilities.Chr2, 0, 0, false, "MZT2B", 0, CompactId.Empty, CompactId.Empty);
            IGene mzt2AGene = new Gene(ChromosomeUtilities.Chr2, 0, 0, true, "MZT2A", 0, CompactId.Empty, CompactId.Empty);

            var transcriptRegions = new ITranscriptRegion[5];

            transcriptRegions[0] = new TranscriptRegion(TranscriptRegionType.Exon, 1, 130181729, 130181797, 1, 61);
            transcriptRegions[1] = new TranscriptRegion(TranscriptRegionType.Intron, 1, 130181798, 130182626, 61, 62);
            transcriptRegions[2] = new TranscriptRegion(TranscriptRegionType.Exon, 2, 130182627, 130182775, 62, 210);
            transcriptRegions[3] = new TranscriptRegion(TranscriptRegionType.Intron, 2, 130182776, 130190468, 210, 211);
            transcriptRegions[4] = new TranscriptRegion(TranscriptRegionType.Exon, 3, 130190469, 130190713, 211, 455);

            var codingRegion = new CodingRegion(130181737, 130190626, 1, 368, 369);
            var translation  = new Translation(codingRegion, CompactId.Empty, null);

            _enst00000425361 = new Transcript(ChromosomeUtilities.Chr2, 130181737, 130190713, CompactId.Convert("ENST00000425361", 5), translation, BioType.other,
                                              mzt2BGene, 0, 0, false, transcriptRegions, 0, null, 0, 0, Source.Ensembl, false, false, null, null);
            _originTranscripts = new[] { _enst00000425361 };

            var transcriptRegions2 = new ITranscriptRegion[10];

            transcriptRegions2[0] = new TranscriptRegion(TranscriptRegionType.Exon, 5, 131464900, 131465047, 532, 679);
            transcriptRegions2[1] = new TranscriptRegion(TranscriptRegionType.Intron, 4, 131465048, 131470205, 531, 532);
            transcriptRegions2[2] = new TranscriptRegion(TranscriptRegionType.Exon, 4, 131470206, 131470343, 394, 531);
            transcriptRegions2[3] = new TranscriptRegion(TranscriptRegionType.Intron, 3, 131470344, 131472067, 393, 394);
            transcriptRegions2[4] = new TranscriptRegion(TranscriptRegionType.Exon, 3, 131472068, 131472182, 279, 393);
            transcriptRegions2[5] = new TranscriptRegion(TranscriptRegionType.Intron, 2, 131472183, 131491875, 278, 279);
            transcriptRegions2[6] = new TranscriptRegion(TranscriptRegionType.Exon, 2, 131491876, 131492024, 130, 278);
            transcriptRegions2[7] = new TranscriptRegion(TranscriptRegionType.Intron, 1, 131492025, 131492206, 129, 130);
            transcriptRegions2[8] = new TranscriptRegion(TranscriptRegionType.Exon, 1, 131492207, 131492335, 1, 129);
            transcriptRegions2[9] = new TranscriptRegion(TranscriptRegionType.Intron, 0, 131492336, 131492341, 0, 0);

            var codingRegion2 = new CodingRegion(131470316, 131492335, 1, 421, 423);
            var translation2  = new Translation(codingRegion2, CompactId.Empty, null);

            _enst00000427024 = new Transcript(ChromosomeUtilities.Chr2, 131464900, 131492335, CompactId.Convert("ENST00000427024", 5), translation2, BioType.other,
                                              mzt2AGene, 0, 0, false, transcriptRegions2, 0, null, 0, 0, Source.Ensembl, false, false, null, null);

            var transcriptRegions3 = new ITranscriptRegion[5];

            transcriptRegions3[0] = new TranscriptRegion(TranscriptRegionType.Exon, 3, 131483960, 131484218, 366, 624);
            transcriptRegions3[1] = new TranscriptRegion(TranscriptRegionType.Intron, 2, 131484219, 131491875, 365, 366);
            transcriptRegions3[2] = new TranscriptRegion(TranscriptRegionType.Exon, 2, 131491876, 131492024, 217, 365);
            transcriptRegions3[3] = new TranscriptRegion(TranscriptRegionType.Intron, 1, 131492025, 131492206, 216, 217);
            transcriptRegions3[4] = new TranscriptRegion(TranscriptRegionType.Exon, 1, 131492207, 131492422, 1, 216);

            var codingRegion3 = new CodingRegion(131484061, 131492376, 47, 523, 477);
            var translation3  = new Translation(codingRegion3, CompactId.Empty, null);

            var enst00000309451 = new Transcript(ChromosomeUtilities.Chr2, 131483960, 131492422, CompactId.Convert("ENST00000309451", 6), translation3, BioType.other,
                                                 mzt2AGene, 0, 0, false, transcriptRegions3, 0, null, 0, 0, Source.Ensembl, false, false, null, null);

            _partnerTranscripts = new[] { _enst00000427024, enst00000309451 };
        }
Exemple #17
0
        private static ITranscriptRegion[] GetTranscriptRegions()
        {
            var regions = new ITranscriptRegion[5];

            regions[0] = new TranscriptRegion(TranscriptRegionType.Exon, 1, 100, 199, 300, 399);
            regions[1] = new TranscriptRegion(TranscriptRegionType.Intron, 1, 200, 299, 400, 499);
            regions[2] = new TranscriptRegion(TranscriptRegionType.Exon, 2, 300, 399, 500, 599);
            regions[3] = new TranscriptRegion(TranscriptRegionType.Intron, 2, 400, 499, 600, 699);
            regions[4] = new TranscriptRegion(TranscriptRegionType.Exon, 3, 500, 599, 700, 799);
            return(regions);
        }
        private static int GetCdnaPosition(ITranscriptRegion region, int variantPosition, bool onReverseStrand)
        {
            if (region == null || region.Type != TranscriptRegionType.Exon)
            {
                return(-1);
            }

            return(onReverseStrand
                ? region.End - variantPosition + region.CdnaStart
                : variantPosition - region.Start + region.CdnaStart);
        }
Exemple #19
0
        private void Write5PrimeUtr(IInterval codingRegion, ITranscriptRegion exon, IRequiredFields requiredFields,
                                    IGeneralAttributes attribs)
        {
            int utrEnd = codingRegion.Start - 1;

            if (utrEnd > exon.End)
            {
                utrEnd = exon.End;
            }
            _writer.WriteExonicRegion(new Interval(exon.Start, utrEnd), requiredFields, attribs, exon.Id, "UTR");
        }
        /// <summary>
        /// Identifies when an insertion on an exon boundary needs special attention. Here we're looking for one
        /// intron & one exon where one cDNA coordinate is defined, but the other isn't.
        /// </summary>
        internal static bool FoundExonEndpointInsertion(bool isInsertion, int cdnaStart, int cdnaEnd,
                                                        ITranscriptRegion startRegion, ITranscriptRegion endRegion)
        {
            bool isCdnaStartUndef = cdnaStart == -1;
            bool isCdnaEndUndef   = cdnaEnd == -1;
            bool isStartExon      = startRegion?.Type == TranscriptRegionType.Exon;
            bool isEndExon        = endRegion?.Type == TranscriptRegionType.Exon;

            return(isInsertion && startRegion != null && endRegion != null && isStartExon ^ isEndExon &&
                   isCdnaStartUndef ^ isCdnaEndUndef);
        }
        public void ExonOverlaps_NoOverlap()
        {
            var transcriptRegions = new ITranscriptRegion[]
            {
                new TranscriptRegion(TranscriptRegionType.Exon, 1, 100, 200, 300, 400)
            };

            IInterval variant        = new Interval(201, 500);
            var       observedResult = transcriptRegions[0].Overlaps(variant);

            Assert.False(observedResult);
        }
        private static ITranscriptRegion[] ToInterfaceArray(this IReadOnlyList <MutableTranscriptRegion> mutableRegions)
        {
            var regions = new ITranscriptRegion[mutableRegions.Count];

            for (var i = 0; i < mutableRegions.Count; i++)
            {
                var region = mutableRegions[i];
                regions[i] = new TranscriptRegion(region.Type, region.Id, region.Start, region.End, region.CdnaStart,
                                                  region.CdnaEnd);
            }
            return(regions);
        }
Exemple #23
0
        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);
        }
Exemple #24
0
        public void GetCoveredCdnaPositions_Reverse_StartBefore_EndExon()
        {
            var regions = new ITranscriptRegion[]
            {
                new TranscriptRegion(TranscriptRegionType.Exon, 4, 103288513, 103288696, 522, 705)
            };

            // ClinVar ENST00000546844 103288512
            var observedResults = regions.GetCoveredCdnaPositions(523, -1, -1, 0, true);

            Assert.Equal(523, observedResults.Start);
            Assert.Equal(705, observedResults.End);
        }
Exemple #25
0
        public void GetCoveredCdnaPositions_Reverse_StartExon_EndAfter()
        {
            var regions = new ITranscriptRegion[]
            {
                new TranscriptRegion(TranscriptRegionType.Exon, 1, 103288513, 103288696, 1, 825)
            };

            // synthetic
            var observedResults = regions.GetCoveredCdnaPositions(-1, ~1, -1, -1, true);

            Assert.Equal(1, observedResults.Start);
            Assert.Equal(825, observedResults.End);
        }
Exemple #26
0
        public void GetCoveredCdnaPositions_Reverse_StartExon_EndIntron()
        {
            var regions = new ITranscriptRegion[]
            {
                new TranscriptRegion(TranscriptRegionType.Exon, 3, 103288513, 103288696, 642, 825),
                new TranscriptRegion(TranscriptRegionType.Intron, 2, 103288697, 103288999, 641, 642)
            };

            var observedResults = regions.GetCoveredCdnaPositions(-1, 0, 666, 1, true);

            Assert.Equal(642, observedResults.Start);
            Assert.Equal(666, observedResults.End);
        }
Exemple #27
0
        public TranscriptCacheReaderTests()
        {
            var chr1 = new Chromosome("chr1", "1", 0);
            var chr2 = new Chromosome("chr2", "2", 1);
            var chr3 = new Chromosome("chr3", "3", 2);

            _refIndexToChromosome = new Dictionary <ushort, IChromosome>
            {
                [chr1.Index] = chr1,
                [chr2.Index] = chr2,
                [chr3.Index] = chr3
            };

            const GenomeAssembly genomeAssembly = GenomeAssembly.GRCh38;

            var baseHeader   = new Header("test", 2, 3, Source.BothRefSeqAndEnsembl, 4, genomeAssembly);
            var customHeader = new TranscriptCacheCustomHeader(1, 2);

            _expectedHeader = new CacheHeader(baseHeader, customHeader);

            var transcriptRegions = new ITranscriptRegion[]
            {
                new TranscriptRegion(TranscriptRegionType.Exon, 1, 100, 199, 300, 399),
                new TranscriptRegion(TranscriptRegionType.Intron, 1, 200, 299, 399, 400),
                new TranscriptRegion(TranscriptRegionType.Exon, 2, 300, 399, 400, 499)
            };

            var mirnas = new IInterval[2];

            mirnas[0] = new Interval(100, 200);
            mirnas[1] = new Interval(300, 400);

            var peptideSeqs = new[] { "MASE*" };

            var genes = new IGene[1];

            genes[0] = new Gene(chr3, 100, 200, true, "TP53", 300, CompactId.Convert("7157"),
                                CompactId.Convert("ENSG00000141510"));

            var regulatoryRegions = new IRegulatoryRegion[2];

            regulatoryRegions[0] = new RegulatoryRegion(chr3, 1200, 1300, CompactId.Convert("123"), RegulatoryRegionType.enhancer);
            regulatoryRegions[1] = new RegulatoryRegion(chr3, 1250, 1450, CompactId.Convert("456"), RegulatoryRegionType.enhancer);
            var regulatoryRegionIntervalArrays = regulatoryRegions.ToIntervalArrays(3);

            var transcripts = GetTranscripts(chr3, genes, transcriptRegions, mirnas);
            var transcriptIntervalArrays = transcripts.ToIntervalArrays(3);

            _expectedCacheData = new TranscriptCacheData(_expectedHeader, genes, transcriptRegions, mirnas, peptideSeqs,
                                                         transcriptIntervalArrays, regulatoryRegionIntervalArrays);
        }
        public static (int CdnaStart, int CdnaEnd) GetCdnaPositions(ITranscriptRegion startRegion,
                                                                    ITranscriptRegion endRegion, IInterval variant, bool onReverseStrand, bool isInsertion)
        {
            int cdnaStart = GetCdnaPosition(startRegion, variant.Start, onReverseStrand);
            int cdnaEnd   = GetCdnaPosition(endRegion, variant.End, onReverseStrand);

            if (FoundExonEndpointInsertion(isInsertion, cdnaStart, cdnaEnd, startRegion, endRegion))
            {
                return(FixExonEndpointInsertion(cdnaStart, cdnaEnd, onReverseStrand, startRegion,
                                                endRegion, variant));
            }

            return(cdnaStart, cdnaEnd);
        }
Exemple #29
0
        private static Stream GetCacheStream()
        {
            const GenomeAssembly genomeAssembly = GenomeAssembly.GRCh38;

            var baseHeader     = new Header("test", 2, 3, Source.BothRefSeqAndEnsembl, 4, genomeAssembly);
            var customHeader   = new TranscriptCacheCustomHeader(1, 2);
            var expectedHeader = new CacheHeader(baseHeader, customHeader);

            var transcriptRegions = new ITranscriptRegion[]
            {
                new TranscriptRegion(TranscriptRegionType.Exon, 1, 100, 199, 300, 399),
                new TranscriptRegion(TranscriptRegionType.Intron, 1, 200, 299, 399, 400),
                new TranscriptRegion(TranscriptRegionType.Exon, 2, 300, 399, 400, 499)
            };

            var mirnas = new IInterval[2];

            mirnas[0] = new Interval(100, 200);
            mirnas[1] = new Interval(300, 400);

            var peptideSeqs = new[] { "MASE*" };

            var genes = new IGene[1];

            genes[0] = new Gene(ChromosomeUtilities.Chr3, 100, 200, true, "TP53", 300, CompactId.Convert("7157"),
                                CompactId.Convert("ENSG00000141510"));

            var regulatoryRegions = new IRegulatoryRegion[2];

            regulatoryRegions[0] = new RegulatoryRegion(ChromosomeUtilities.Chr3, 1200, 1300, CompactId.Convert("123"), RegulatoryRegionType.enhancer);
            regulatoryRegions[1] = new RegulatoryRegion(ChromosomeUtilities.Chr3, 1250, 1450, CompactId.Convert("456"), RegulatoryRegionType.enhancer);
            var regulatoryRegionIntervalArrays = regulatoryRegions.ToIntervalArrays(3);

            var transcripts = GetTranscripts(ChromosomeUtilities.Chr3, genes, transcriptRegions, mirnas);
            var transcriptIntervalArrays = transcripts.ToIntervalArrays(3);

            var expectedCacheData = new TranscriptCacheData(expectedHeader, genes, transcriptRegions, mirnas, peptideSeqs,
                                                            transcriptIntervalArrays, regulatoryRegionIntervalArrays);

            var ms = new MemoryStream();

            using (var writer = new TranscriptCacheWriter(ms, expectedHeader, true))
            {
                writer.Write(expectedCacheData);
            }

            ms.Position = 0;

            return(ms);
        }
Exemple #30
0
        public void GetCoveredCdnaPositions_Reverse_StartIntron_EndExon()
        {
            var regions = new ITranscriptRegion[]
            {
                new TranscriptRegion(TranscriptRegionType.Intron, 3, 103271329, 103288512, 825, 826),
                new TranscriptRegion(TranscriptRegionType.Exon, 3, 103288513, 103288696, 642, 825)
            };

            // ClinVar ENST00000553106 103288512
            var observedResults = regions.GetCoveredCdnaPositions(643, 0, -1, 1, true);

            Assert.Equal(643, observedResults.Start);
            Assert.Equal(825, observedResults.End);
        }