public void DetermineIntronicEffect_IsStartSpliceSite()
        {
            var positionalEffect = new TranscriptPositionalEffect();

            positionalEffect.DetermineIntronicEffect(_otherTranscriptRegions, new Interval(300, 303), VariantType.deletion);
            Assert.True(positionalEffect.IsStartSpliceSite);
        }
Пример #2
0
        public void IsFivePrimeUtrVariant(bool onReverseStrand, bool withinCdna, bool beforeCoding, bool afterCoding,
                                          bool expectedResult)
        {
            var positionalEffect = new TranscriptPositionalEffect
            {
                BeforeCoding = beforeCoding,
                AfterCoding  = afterCoding,
                WithinCdna   = withinCdna
            };

            var variant    = new Mock <ISimpleVariant>();
            var transcript = new Mock <ITranscript>();

            variant.SetupGet(x => x.AltAllele).Returns("G");
            variant.SetupGet(x => x.RefAllele).Returns("C");

            var variantEffect = new VariantEffect(positionalEffect, variant.Object, transcript.Object, "", "", "", "",
                                                  null, "", "");

            var gene = new Mock <IGene>();

            transcript.SetupGet(x => x.Gene).Returns(gene.Object);
            gene.SetupGet(x => x.OnReverseStrand).Returns(onReverseStrand);

            var translation = new Mock <ITranslation>();

            transcript.SetupGet(x => x.Translation).Returns(translation.Object);

            Assert.Equal(expectedResult, variantEffect.IsFivePrimeUtrVariant());
        }
        public void IsWithinCds_ReturnFalse()
        {
            var positionalEffect = new TranscriptPositionalEffect();
            var observedResult   = positionalEffect.IsWithinCds(-1, -1, null, null);

            Assert.False(observedResult);
        }
        public void IsWithinCds_ReturnTrue()
        {
            var positionalEffect = new TranscriptPositionalEffect();
            var observedResult   = positionalEffect.IsWithinCds(180, 180, null, null);

            Assert.True(observedResult);
        }
        public void DetermineIntronicEffect_IsEndSpliceSite()
        {
            var positionalEffect = new TranscriptPositionalEffect();

            positionalEffect.DetermineIntronicEffect(_otherTranscriptRegions, new Interval(400, 400), VariantType.SNV);
            Assert.True(positionalEffect.IsEndSpliceSite);
        }
        public void DetermineIntronicEffect_IsWithinFrameshiftIntron()
        {
            var positionalEffect = new TranscriptPositionalEffect();

            positionalEffect.DetermineIntronicEffect(_otherTranscriptRegions, new Interval(702, 705), VariantType.deletion);
            Assert.True(positionalEffect.IsWithinFrameshiftIntron);
        }
        public void DetermineIntronicEffect_IsWithinSpliceSiteRegion()
        {
            var       positionalEffect = new TranscriptPositionalEffect();
            IInterval variant          = new Interval(298, 302);

            positionalEffect.DetermineIntronicEffect(_otherTranscriptRegions, variant, VariantType.deletion);
            Assert.True(positionalEffect.IsWithinSpliceSiteRegion);
        }
        public void DetermineIntronicEffect_IsWithinFrameshiftIntron_NotInSpliceSite()
        {
            var positionalEffect = new TranscriptPositionalEffect();

            positionalEffect.DetermineIntronicEffect(_otherTranscriptRegions, new Interval(701, 709), VariantType.deletion);
            Assert.True(positionalEffect.IsWithinFrameshiftIntron);
            Assert.False(positionalEffect.IsStartSpliceSite);
            Assert.False(positionalEffect.IsEndSpliceSite);
        }
        public void DetermineExonicEffect_WithinCdna()
        {
            IInterval variant  = new Interval(879600, 879600);
            var       position = new MappedPosition(1692, 1692, -1, -1, -1, -1, 7, 7, -1, -1, 12, 12);

            var positionalEffect = new TranscriptPositionalEffect();

            positionalEffect.DetermineExonicEffect(_forwardTranscript.Object, variant, position, 1692, 1692, -1, -1, "G", false);
            Assert.True(positionalEffect.WithinCdna);
        }
        public void DetermineExonicEffect_WithinCds()
        {
            IInterval variant  = new Interval(876543, 876543);
            var       position = new MappedPosition(206, 206, 206, 206, 69, 69, 2, 2, -1, -1, 2, 2);

            var positionalEffect = new TranscriptPositionalEffect();

            positionalEffect.DetermineExonicEffect(_forwardTranscript.Object, variant, position, 206, 206, 206, 206, "G", false);
            Assert.True(positionalEffect.WithinCdna);
        }
        public void DetermineExonicEffect_OverlapWithMicroRna()
        {
            IInterval variant  = new Interval(3477284, 3477284);
            var       position = new MappedPosition(71, 71, -1, -1, -1, -1, 1, 1, -1, -1, 0, 0);

            var positionalEffect = new TranscriptPositionalEffect();

            positionalEffect.DetermineExonicEffect(_reverseTranscript.Object, variant, position, 71, 71, -1, -1, "G", false);
            Assert.True(positionalEffect.OverlapWithMicroRna);
        }
        public void DetermineExonicEffect_HasExonOverlap()
        {
            IInterval variant  = new Interval(876686, 876686);
            var       position = new MappedPosition(349, 349, 349, 349, 117, 117, 2, 2, -1, -1, 2, 2);

            var positionalEffect = new TranscriptPositionalEffect();

            positionalEffect.DetermineExonicEffect(_forwardTranscript.Object, variant, position, 349, 349, 349, 349, "G", false);

            Assert.True(positionalEffect.HasExonOverlap);
        }
        public void IsWithinCds_IsWithinFrameshiftIntron_ReturnFalse()
        {
            var variant          = new Interval(100, 101);
            var codingRegion     = new Interval(102, 120);
            var positionalEffect = new TranscriptPositionalEffect {
                IsWithinFrameshiftIntron = true
            };

            var observedResult = positionalEffect.IsWithinCds(-1, -1, codingRegion, variant);

            Assert.False(observedResult);
        }
Пример #14
0
        private static VariantEffect GetVariantEffect(ITranscript transcript, ISimpleVariant variant, IMappedPositions mappedPositions, string refAminoAcids, string altAminoAcids, string refCodons, string altCodons, bool insertionInStartAndNoImpact)
        {
            var positionalEffect = new TranscriptPositionalEffect();

            positionalEffect.DetermineIntronicEffect(transcript.Introns, variant, variant.Type);
            positionalEffect.DetermineExonicEffect(transcript, variant, mappedPositions, variant.AltAllele, insertionInStartAndNoImpact);

            var variantEffect = new VariantEffect(positionalEffect, variant, transcript, refAminoAcids,
                                                  altAminoAcids,
                                                  refCodons, altCodons, mappedPositions.ProteinInterval.Start);

            return(variantEffect);
        }
        public void DetermineIntronicEffect_IsWithinIntron()
        {
            IInterval variant          = new Interval(300, 302);
            var       positionalEffect = new TranscriptPositionalEffect();

            positionalEffect.DetermineIntronicEffect(_otherTranscriptRegions, variant, VariantType.deletion);
            Assert.False(positionalEffect.IsWithinIntron);

            IInterval variant2          = new Interval(303, 303);
            var       positionalEffect2 = new TranscriptPositionalEffect();

            positionalEffect2.DetermineIntronicEffect(_otherTranscriptRegions, variant2, VariantType.deletion);
            Assert.True(positionalEffect2.IsWithinIntron);
        }
Пример #16
0
        private static TranscriptPositionalEffect GetPositionalEffect(ITranscript transcript, ISimpleVariant variant,
                                                                      IMappedPosition position, string refAminoAcid, string altAminoAcid, int coveredCdnaStart,
                                                                      int coveredCdnaEnd, int coveredCdsStart, int coveredCdsEnd)
        {
            bool startCodonInsertionWithNoImpact = variant.Type == VariantType.insertion &&
                                                   position.ProteinStart <= 1 &&
                                                   altAminoAcid.EndsWith(refAminoAcid);

            var positionalEffect = new TranscriptPositionalEffect();

            positionalEffect.DetermineIntronicEffect(transcript.TranscriptRegions, variant, variant.Type);
            positionalEffect.DetermineExonicEffect(transcript, variant, position, coveredCdnaStart, coveredCdnaEnd,
                                                   coveredCdsStart, coveredCdsEnd, variant.AltAllele, startCodonInsertionWithNoImpact);
            return(positionalEffect);
        }
        public void DetermineIntronicEffect_NotWithinFrameshiftIntron()
        {
            var transcriptRegions = new ITranscriptRegion[]
            {
                new TranscriptRegion(TranscriptRegionType.Exon, 1, 201342300, 201342340, 1, 186),
                new TranscriptRegion(TranscriptRegionType.Intron, 1, 201342340, 201342343, 186, 187),
                new TranscriptRegion(TranscriptRegionType.Exon, 2, 201342344, 201342400, 187, 349)
            };

            IInterval variant          = new Interval(201342344, 201342344);
            var       positionalEffect = new TranscriptPositionalEffect();

            positionalEffect.DetermineIntronicEffect(transcriptRegions, variant, VariantType.SNV);

            Assert.True(positionalEffect.IsWithinSpliceSiteRegion);
        }
        public void DetermineIntronicEffect_NullIntrons()
        {
            var positionalEffect = new TranscriptPositionalEffect();

            positionalEffect.DetermineIntronicEffect(null, new Interval(400, 400), VariantType.SNV);

            Assert.False(positionalEffect.IsEndSpliceSite);
            Assert.False(positionalEffect.IsStartSpliceSite);
            Assert.False(positionalEffect.IsWithinFrameshiftIntron);
            Assert.False(positionalEffect.IsWithinIntron);
            Assert.False(positionalEffect.IsWithinSpliceSiteRegion);
            Assert.False(positionalEffect.HasExonOverlap);
            Assert.False(positionalEffect.AfterCoding);
            Assert.False(positionalEffect.BeforeCoding);
            Assert.False(positionalEffect.WithinCdna);
            Assert.False(positionalEffect.WithinCds);
            Assert.False(positionalEffect.HasFrameShift);
            Assert.False(positionalEffect.IsCoding);
        }
Пример #19
0
        public void IsStopLost_DeletionOverStopCodon_ReturnTrue()
        {
            var positionalEffect = new TranscriptPositionalEffect
            {
                BeforeCoding = false,
                AfterCoding  = true,
                WithinCdna   = true
            };

            var variant = new Mock <ISimpleVariant>();

            variant.SetupGet(x => x.AltAllele).Returns("ATAGCCC");
            variant.SetupGet(x => x.RefAllele).Returns("A");

            var variantEffect = new VariantEffect(positionalEffect, variant.Object, null, "", "", "", "",
                                                  null, "*", "X");

            Assert.True(variantEffect.IsStopLost());
        }
Пример #20
0
        public void IsCodingSequenceVariant_WithMoreSpecificConsequence_ReturnFalse(ConsequenceTag ct)
        {
            var positionalEffect = new TranscriptPositionalEffect
            {
                BeforeCoding = false,
                AfterCoding  = true,
                WithinCdna   = true
            };

            var cache = new VariantEffectCache();

            cache.Add(ct, true);
            var variant = new Mock <ISimpleVariant>();

            variant.SetupGet(x => x.AltAllele).Returns("ATAGCCC");
            variant.SetupGet(x => x.RefAllele).Returns("A");

            var variantEffect = new VariantEffect(positionalEffect, variant.Object, null, "", "", "", "",
                                                  null, null, null, cache);

            Assert.False(variantEffect.IsCodingSequenceVariant());
        }
Пример #21
0
        public void IsSpliceDonorVariant(bool onReverseStrand, bool isStartSpliceSite, bool isEndSpliceSite, bool expectedResult)
        {
            var positionalEffect = new TranscriptPositionalEffect
            {
                IsStartSpliceSite = isStartSpliceSite,
                IsEndSpliceSite   = isEndSpliceSite
            };

            var variant    = new Mock <ISimpleVariant>();
            var transcript = new Mock <ITranscript>();

            variant.SetupGet(x => x.AltAllele).Returns("G");
            variant.SetupGet(x => x.RefAllele).Returns("C");

            var variantEffect = new VariantEffect(positionalEffect, variant.Object, transcript.Object, "", "", "", "",
                                                  null, "", "");

            var gene = new Mock <IGene>();

            transcript.SetupGet(x => x.Gene).Returns(gene.Object);
            gene.SetupGet(x => x.OnReverseStrand).Returns(onReverseStrand);

            Assert.Equal(expectedResult, variantEffect.IsSpliceDonorVariant());
        }
        public void IsWithinCdna(int cdnaStart, int cdnaEnd, int totalExonLen, bool expectedResult)
        {
            var observedResult = TranscriptPositionalEffect.IsWithinCdna(cdnaStart, cdnaEnd, totalExonLen);

            Assert.Equal(expectedResult, observedResult);
        }
        public void IsBeforeCoding_True_WhenInsertion()
        {
            var observedResult = TranscriptPositionalEffect.IsBeforeCoding(101, 100, 100, 101);

            Assert.True(observedResult);
        }
Пример #24
0
        public void DetermineSmallVariantEffects_tier3()
        {
            var cache = new VariantEffectCache();

            cache.Add(ConsequenceTag.mature_miRNA_variant, false);

            cache.Add(ConsequenceTag.splice_donor_variant, true);
            cache.Add(ConsequenceTag.splice_acceptor_variant, true);
            cache.Add(ConsequenceTag.stop_gained, true);
            cache.Add(ConsequenceTag.frameshift_variant, true);
            cache.Add(ConsequenceTag.stop_lost, true);
            cache.Add(ConsequenceTag.start_lost, true);
            cache.Add(ConsequenceTag.inframe_insertion, true);
            cache.Add(ConsequenceTag.inframe_deletion, true);
            cache.Add(ConsequenceTag.missense_variant, true);
            cache.Add(ConsequenceTag.protein_altering_variant, true);
            cache.Add(ConsequenceTag.splice_region_variant, true);
            cache.Add(ConsequenceTag.incomplete_terminal_codon_variant, true);
            cache.Add(ConsequenceTag.stop_retained_variant, true);
            cache.Add(ConsequenceTag.synonymous_variant, true);
            cache.Add(ConsequenceTag.coding_sequence_variant, true);
            cache.Add(ConsequenceTag.five_prime_UTR_variant, true);
            cache.Add(ConsequenceTag.three_prime_UTR_variant, true);
            cache.Add(ConsequenceTag.non_coding_transcript_exon_variant, true);
            cache.Add(ConsequenceTag.intron_variant, true);
            cache.Add(ConsequenceTag.NMD_transcript_variant, true);
            cache.Add(ConsequenceTag.non_coding_transcript_variant, true);


            var simpleVariant = new Mock <ISimpleVariant>();

            simpleVariant.SetupGet(x => x.RefAllele).Returns("G");
            simpleVariant.SetupGet(x => x.AltAllele).Returns("C");

            var positionalEffect = new TranscriptPositionalEffect
            {
                IsWithinIntron = true
            };
            var variantEffect = new VariantEffect(positionalEffect, simpleVariant.Object, null, null, null, null, null, null, cache);

            var featureEffect = new Mock <IFeatureVariantEffects>();

            featureEffect.Setup(x => x.Ablation()).Returns(false);
            featureEffect.Setup(x => x.Amplification()).Returns(false);
            featureEffect.Setup(x => x.Truncation()).Returns(true);
            featureEffect.Setup(x => x.Elongation()).Returns(true);

            var consequence = new Consequences(variantEffect, featureEffect.Object);

            consequence.DetermineSmallVariantEffects();
            var observedConsequence = consequence.GetConsequences();

            Assert.Equal(ConsequenceTag.splice_donor_variant, observedConsequence[0]);
            Assert.Equal(ConsequenceTag.splice_acceptor_variant, observedConsequence[1]);
            Assert.Equal(ConsequenceTag.stop_gained, observedConsequence[2]);
            Assert.Equal(ConsequenceTag.frameshift_variant, observedConsequence[3]);
            Assert.Equal(ConsequenceTag.stop_lost, observedConsequence[4]);
            Assert.Equal(ConsequenceTag.start_lost, observedConsequence[5]);
            Assert.Equal(ConsequenceTag.inframe_insertion, observedConsequence[6]);
            Assert.Equal(ConsequenceTag.inframe_deletion, observedConsequence[7]);
            Assert.Equal(ConsequenceTag.missense_variant, observedConsequence[8]);
            Assert.Equal(ConsequenceTag.protein_altering_variant, observedConsequence[9]);
            Assert.Equal(ConsequenceTag.splice_region_variant, observedConsequence[10]);
            Assert.Equal(ConsequenceTag.incomplete_terminal_codon_variant, observedConsequence[11]);

            Assert.Equal(ConsequenceTag.stop_retained_variant, observedConsequence[12]);
            Assert.Equal(ConsequenceTag.synonymous_variant, observedConsequence[13]);
            Assert.Equal(ConsequenceTag.coding_sequence_variant, observedConsequence[14]);
            Assert.Equal(ConsequenceTag.five_prime_UTR_variant, observedConsequence[15]);
            Assert.Equal(ConsequenceTag.three_prime_UTR_variant, observedConsequence[16]);
            Assert.Equal(ConsequenceTag.non_coding_transcript_exon_variant, observedConsequence[17]);
            Assert.Equal(ConsequenceTag.intron_variant, observedConsequence[18]);
            Assert.Equal(ConsequenceTag.NMD_transcript_variant, observedConsequence[19]);
            Assert.Equal(ConsequenceTag.non_coding_transcript_variant, observedConsequence[20]);
        }
        public void IsMatureMirnaVariant_NullMirnas()
        {
            var observedResult = TranscriptPositionalEffect.IsMatureMirnaVariant(-1, -1, null, true);

            Assert.False(observedResult);
        }