public static IAnnotatedTranscript GetAnnotatedTranscript(ITranscript transcript, IVariant leftShiftedVariant,
                                                                  ISequence refSequence, IPredictionCache siftCache, IPredictionCache polyphenCache, AminoAcids aminoAcids)
        {
            var rightShiftedVariant = VariantRotator.Right(leftShiftedVariant, transcript, refSequence,
                                                           transcript.Gene.OnReverseStrand);

            var leftAnnotation = AnnotateTranscript(transcript, leftShiftedVariant, aminoAcids, refSequence);

            var rightAnnotation = ReferenceEquals(leftShiftedVariant, rightShiftedVariant)
                ? leftAnnotation
                : AnnotateTranscript(transcript, rightShiftedVariant, aminoAcids, refSequence);

            var consequences = GetConsequences(transcript, leftShiftedVariant, leftAnnotation.VariantEffect);

            var hgvsCoding = HgvsCodingNomenclature.GetHgvscAnnotation(transcript, rightShiftedVariant, refSequence,
                                                                       rightAnnotation.Position.RegionStartIndex, rightAnnotation.Position.RegionEndIndex);

            var hgvsProtein = HgvsProteinNomenclature.GetHgvsProteinAnnotation(transcript,
                                                                               rightAnnotation.RefAminoAcids, rightAnnotation.AltAminoAcids, rightAnnotation.TranscriptAltAllele,
                                                                               rightAnnotation.Position, rightAnnotation.VariantEffect, rightShiftedVariant, refSequence, hgvsCoding,
                                                                               leftShiftedVariant.Chromosome.UcscName == "chrM");

            var predictionScores = GetPredictionScores(leftAnnotation.Position, leftAnnotation.RefAminoAcids,
                                                       leftAnnotation.AltAminoAcids, siftCache, polyphenCache, transcript.SiftIndex, transcript.PolyPhenIndex);

            return(new AnnotatedTranscript(transcript, leftAnnotation.RefAminoAcids, leftAnnotation.AltAminoAcids,
                                           leftAnnotation.RefCodons, leftAnnotation.AltCodons, leftAnnotation.Position, hgvsCoding, hgvsProtein,
                                           predictionScores.Sift, predictionScores.PolyPhen, consequences, false));
        }
Exemple #2
0
        public void Insertion()
        {
            var variantEffect = new Mock <IVariantEffect>();

            variantEffect.Setup(x => x.IsFrameshiftVariant()).Returns(false);

            variantEffect.Setup(x => x.IsStopRetained()).Returns(false);
            variantEffect.Setup(x => x.IsStartLost()).Returns(false);
            variantEffect.Setup(x => x.IsStopLost()).Returns(false);

            var proteinChange = HgvsProteinNomenclature.GetProteinChange(4, "", "A", "MACTAWR", variantEffect.Object);

            Assert.Equal(ProteinChange.Insertion, proteinChange);
        }
 public void IsDuplicatedAminoAcidsTests(string refAminoAcids, string altAminoAcids, bool result)
 {
     Assert.Equal(result, HgvsProteinNomenclature.IsDuplicatedAminoAcids(refAminoAcids, altAminoAcids));
 }