public void ValidateLookupWithOffsetValueSix() { string alphabetName = utilityObj.xmlUtil.GetTextValue( Constants.SimpleRnaAlphabetNode, Constants.AlphabetNameNode); string expectedSeq = utilityObj.xmlUtil.GetTextValue( Constants.CodonsNode, Constants.ExpectedNormalString); string expectedAminoAcid = utilityObj.xmlUtil.GetTextValue( Constants.CodonsNode, Constants.OffsetZeroSixCharsAminoAcidV2); string expectedOffset = utilityObj.xmlUtil.GetTextValue( Constants.CodonsNode, Constants.OffsetVaule2); Sequence seq = new Sequence(Utility.GetAlphabet(alphabetName), expectedSeq); // Validate Codons lookup method. string aminoAcid = Codons.Lookup(seq, Convert.ToInt32(expectedOffset, null)).ToString(); // Validate amino acids for a given sequence. Assert.AreEqual(expectedAminoAcid, aminoAcid); ApplicationLog.WriteLine(string.Format((IFormatProvider)null, "Translation P1: Amino Acid {0} is expected.", aminoAcid)); ApplicationLog.WriteLine( "Translation P1: Amino Acid validation for a given sequence was completed successfully."); }
AltAminoAcids, string RefCodons, string AltCodons, string TranscriptAltAllele) AnnotateTranscript(ITranscript transcript, ISimpleVariant variant, AminoAcids aminoAcids, ISequence refSequence) { var onReverseStrand = transcript.Gene.OnReverseStrand; var start = MappedPositionUtilities.FindRegion(transcript.TranscriptRegions, variant.Start); var end = MappedPositionUtilities.FindRegion(transcript.TranscriptRegions, variant.End); var position = GetMappedPosition(transcript.TranscriptRegions, start.Region, start.Index, end.Region, end.Index, variant, onReverseStrand, transcript.Translation?.CodingRegion, transcript.StartExonPhase, variant.Type == VariantType.insertion); var transcriptAltAllele = HgvsUtilities.GetTranscriptAllele(variant.AltAllele, onReverseStrand); var codingSequence = GetCodingSequence(transcript, refSequence); var codons = Codons.GetCodons(transcriptAltAllele, position.CdsStart, position.CdsEnd, position.ProteinStart, position.ProteinEnd, codingSequence); var coveredCdna = transcript.TranscriptRegions.GetCoveredCdnaPositions(position.CdnaStart, start.Index, position.CdnaEnd, end.Index, onReverseStrand); var aa = aminoAcids.Translate(codons.Reference, codons.Alternate); var coveredPositions = MappedPositionUtilities.GetCoveredCdsAndProteinPositions(coveredCdna.Start, coveredCdna.End, transcript.StartExonPhase, transcript.Translation?.CodingRegion); // only generate the covered version of ref & alt alleles when CDS start/end is -1 var coveredAa = position.CdsStart == -1 || position.CdsEnd == -1 ? GetCoveredAa(aminoAcids, transcriptAltAllele, coveredPositions, codingSequence) : aa; var positionalEffect = GetPositionalEffect(transcript, variant, position, aa.Reference, aa.Alternate, coveredCdna.Start, coveredCdna.End, coveredPositions.CdsStart, coveredPositions.CdsEnd); var variantEffect = new VariantEffect(positionalEffect, variant, transcript, aa.Reference, aa.Alternate, codons.Reference, codons.Alternate, position.ProteinStart, coveredAa.Reference, coveredAa.Alternate); return(variantEffect, position, aa.Reference, aa.Alternate, codons.Reference, codons.Alternate, transcriptAltAllele); }
public void ValidateAminoAcid() { // Get Node values from XML. string expectedNucleo = Utility._xmlUtil.GetTextValue( Constants.CodonsNode, Constants.Nucleotide); string expectedAminoAcid = Utility._xmlUtil.GetTextValue( Constants.CodonsNode, Constants.AminoAcid); // Create Nucleotide objects. Nucleotide firstNucleo1 = new Nucleotide(expectedNucleo[0], "Uracil"); Nucleotide firstNucleo2 = new Nucleotide(expectedNucleo[1], "Uracil"); Nucleotide firstNucleo3 = new Nucleotide(expectedNucleo[2], "Uracil"); // Validate Codons lookup method. AminoAcid aminoAcid = Codons.Lookup(firstNucleo1, firstNucleo2, firstNucleo3); // Validate amino acids for each triplet. Assert.AreEqual(aminoAcid.Name.ToString(), expectedAminoAcid); ApplicationLog.WriteLine(string.Format(null, "Translation BVT: Amino Acid {0} is expected.", aminoAcid)); ApplicationLog.WriteLine( "Translation BVT: Amino Acid validation for a given triplets of nucleotide was completed successfully."); }
public void ValidateLookupWithZeroOffset() { string alphabetName = _utilityObj._xmlUtil.GetTextValue(Constants.SimpleRnaAlphabetNode, Constants.AlphabetNameNode); string expectedSeq = _utilityObj._xmlUtil.GetTextValue(Constants.CodonsNode, Constants.SequenceWithmoreThanTweleveChars); string expectedAminoAcid = _utilityObj._xmlUtil.GetTextValue(Constants.CodonsNode, Constants.OffsetOneMoreThanTwelveCharsAminoAcid); string expectedOffset = _utilityObj._xmlUtil.GetTextValue(Constants.CodonsNode, Constants.OffsetVaule4); ISequence seq = new Sequence(Utility.GetAlphabet(alphabetName), expectedSeq); // Validate Codons lookup method. AminoAcid aminoAcid = Codons.Lookup(seq, Convert.ToInt32(expectedOffset, null)); // Validate amino acids for a given sequence. Assert.AreEqual(aminoAcid.Name.ToString((IFormatProvider)null), expectedAminoAcid); ApplicationLog.WriteLine(string.Format((IFormatProvider)null, "Translation P2: Amino Acid {0} is expected.", aminoAcid)); ApplicationLog.WriteLine( "Translation P2: Amino Acid validation for a given sequence was completed successfully."); }
public void ValidateLookupWithSixChars() { string alphabetName = Utility._xmlUtil.GetTextValue( Constants.SimpleRnaAlphabetNode, Constants.AlphabetNameNode); string expectedSeq = Utility._xmlUtil.GetTextValue( Constants.CodonsNode, Constants.SequenceWithSixChars); string expectedAminoAcid = Utility._xmlUtil.GetTextValue( Constants.CodonsNode, Constants.OffsetZeroSixCharsAminoAcid); string expectedOffset = Utility._xmlUtil.GetTextValue( Constants.CodonsNode, Constants.OffsetVaule2); ISequence seq = new Sequence(Utility.GetAlphabet(alphabetName), expectedSeq); // Validate Codons lookup method. AminoAcid aminoAcid = Codons.Lookup(seq, Convert.ToInt32(expectedOffset, null)); // Validate amino acids for a given sequencet. Assert.AreEqual(aminoAcid.Name.ToString(), expectedAminoAcid); ApplicationLog.WriteLine(string.Format(null, "Translation P1: Amino Acid {0} is expected.", aminoAcid)); ApplicationLog.WriteLine( "Translation P1: Amino Acid validation for a given sequence was completed successfully."); }
public void ValidateAminoAcidForSequence() { // Get Node values from XML. string alphabetName = _utilityObj._xmlUtil.GetTextValue(Constants.SimpleRnaAlphabetNode, Constants.AlphabetNameNode); string expectedSeq = _utilityObj._xmlUtil.GetTextValue(Constants.CodonsNode, Constants.ExpectedNormalString); string expectedAminoAcid = _utilityObj._xmlUtil.GetTextValue(Constants.CodonsNode, Constants.SeqAminoAcid); string expectedOffset = _utilityObj._xmlUtil.GetTextValue(Constants.CodonsNode, Constants.OffsetVaule1); ISequence seq = new Sequence(Utility.GetAlphabet(alphabetName), expectedSeq); // Validate Codons lookup method. AminoAcid aminoAcid = Codons.Lookup(seq, Convert.ToInt32(expectedOffset, null)); // Validate amino acids for each triplet. Assert.AreEqual(aminoAcid.Name.ToString((IFormatProvider)null), expectedAminoAcid); ApplicationLog.WriteLine(string.Format((IFormatProvider)null, "Translation BVT: Amino Acid {0} is expected.", aminoAcid)); ApplicationLog.WriteLine( "Translation BVT: Amino Acid validation for a given sequence was completed successfully."); }
/// <summary> /// returns true if the variant is a frameshift variant [VariantEffect.pm:940 frameshift] /// </summary> public bool IsFrameshiftVariant() { const ConsequenceType ct = ConsequenceType.FrameshiftVariant; if (_cache.Contains(ct)) { return(_cache.Get(ct)); } // check the predicates if (!_preCache.IsCoding) { _cache.Add(ct, false); return(false); } bool result = false; if (!_altAllele.IsStructuralVariant) { if (IsIncompleteTerminalCodonVariant() || !_ta.HasValidCdsStart || !_ta.HasValidCdsEnd) { _cache.Add(ct, false); return(false); } int varLen = _ta.CodingDnaSequenceEnd - _ta.CodingDnaSequenceBegin + 1; int alleleLen = _altAllele.AlternateAllele?.Length ?? 0; result = !Codons.IsTriplet(alleleLen - varLen) && !IsStopRetained(); } result = result && !IsTruncatedByStop(); _cache.Add(ct, result); return(result); }
/// <summary> /// Get AA for a single DNA codon /// </summary> /// <param name="codon"></param> /// <param name="aa"></param> /// <returns></returns> public static bool TranslateDnaCodon(string codon, out byte aa) { ISequence rnaCodon = Transcription.Transcribe(new Sequence(Alphabets.DNA, codon.Select(c => (byte)c).ToArray())); return(Codons.TryLookup(rnaCodon, 0, out aa)); }
private static SequenceChange GetCoveredAa(AminoAcids aminoAcids, string transcriptAltAllele, int coveredCdsStart, int coveredCdsEnd, int coveredProteinStart, int coveredProteinEnd, ISequence codingSequence) { var codonsChange = Codons.GetCodons(transcriptAltAllele, coveredCdsStart, coveredCdsEnd, coveredProteinStart, coveredProteinEnd, codingSequence); return(aminoAcids.Translate(codonsChange.Reference, codonsChange.Alternate)); }
public void IsTriplet(int len, bool expectedResult) { var observedResult = Codons.IsTriplet(len); Assert.Equal(expectedResult, observedResult); }