/// <summary> /// Get Amino Acids Using Ambiguous RNA Codons. /// </summary> /// <param name="firstPos">First position.</param> /// <param name="secondPos">Second position.</param> /// <param name="thirdPos">Third position.</param> /// <returns>Returns list of bytes.</returns> private static IList <byte> GetAminoAcidsUsingAmbigiousRNACodons(byte firstPos, byte secondPos, byte thirdPos) { IList <byte> aminoAcids = new List <byte>(); HashSet <byte> firstBasicSymbols; RnaAlphabet.Instance.TryGetBasicSymbols(firstPos, out firstBasicSymbols); HashSet <byte> secondBasicSymbols; RnaAlphabet.Instance.TryGetBasicSymbols(secondPos, out secondBasicSymbols); HashSet <byte> thirdBasicSymbols; RnaAlphabet.Instance.TryGetBasicSymbols(thirdPos, out thirdBasicSymbols); foreach (byte firstPosAlphabet in firstBasicSymbols) { foreach (byte secondPosAlphabet in secondBasicSymbols) { foreach (byte thirdPosAlphabet in thirdBasicSymbols) { aminoAcids.Add(Codons.Lookup(firstPosAlphabet, secondPosAlphabet, thirdPosAlphabet)); } } } return(aminoAcids); }
/// <summary> /// Get Amino Acids Using Ambiguous DNA Codons. /// </summary> /// <param name="firstPos">First position.</param> /// <param name="secondPos">Second position.</param> /// <param name="thirdPos">Third position.</param> /// <returns>Returns list of bytes.</returns> private static IList <byte> GetAminoAcidsUsingAmbigiousDNACodons(byte firstPos, byte secondPos, byte thirdPos) { IList <byte> aminoAcids = new List <byte>(); HashSet <byte> firstBasicSymbols; DnaAlphabet.Instance.TryGetBasicSymbols(firstPos, out firstBasicSymbols); HashSet <byte> secondBasicSymbols; DnaAlphabet.Instance.TryGetBasicSymbols(secondPos, out secondBasicSymbols); HashSet <byte> thirdBasicSymbols; DnaAlphabet.Instance.TryGetBasicSymbols(thirdPos, out thirdBasicSymbols); foreach (byte firstPosAlphabet in firstBasicSymbols) { byte firstPosNucleotide = Transcription.GetRnaComplement(firstPosAlphabet); foreach (byte secondPosAlphabet in secondBasicSymbols) { byte secondPosNucleotide = Transcription.GetRnaComplement(secondPosAlphabet); foreach (byte thirdPosAlphabet in thirdBasicSymbols) { aminoAcids.Add(Codons.Lookup(firstPosNucleotide, secondPosNucleotide, Transcription.GetRnaComplement(thirdPosAlphabet))); } } } return(aminoAcids); }
public void ValidateLookupWithDnaSequence() { string alphabetName = _utilityObj._xmlUtil.GetTextValue( Constants.SimpleDnaAlphabetNode, Constants.AlphabetNameNode); string expectedSeq = _utilityObj._xmlUtil.GetTextValue( Constants.TranscribeNode, Constants.DnaSequence); string expectedAminoAcid = _utilityObj._xmlUtil.GetTextValue( Constants.CodonsNode, Constants.DnaSeqAminoAcid); string expectedOffset = _utilityObj._xmlUtil.GetTextValue( Constants.CodonsNode, Constants.OffsetVaule); ISequence seq = new Sequence(Utility.GetAlphabet(alphabetName), expectedSeq); // Transcribe DNA to RNA. ISequence transcribe = Transcription.Transcribe(seq); // Validate Codons lookup method. AminoAcid aminoAcid = Codons.Lookup(transcribe, 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 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.SeqAminoAcidV2); string expectedOffset = utilityObj.xmlUtil.GetTextValue(Constants.CodonsNode, Constants.OffsetVaule1); string aminoAcid = null; Sequence seq = new Sequence(Utility.GetAlphabet(alphabetName), expectedSeq); // Validate Codons lookup method. aminoAcid = Codons.Lookup(seq, Convert.ToInt32(expectedOffset, null)).ToString(); // Validate amino acids for each triplet. Assert.AreEqual(expectedAminoAcid, aminoAcid); 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."); }
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.OffsetOneMoreThanTwelveCharsAminoAcidV2); string expectedOffset = utilityObj.xmlUtil.GetTextValue(Constants.CodonsNode, Constants.OffsetVaule4); string aminoAcid = null; Sequence seq = new Sequence(Utility.GetAlphabet(alphabetName), expectedSeq); // Validate Codons lookup method. 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 P2: Amino Acid {0} is expected.", aminoAcid)); ApplicationLog.WriteLine( "Translation P2: Amino Acid validation for a given sequence was completed successfully."); }
/// <summary> /// Translates the RNA sequence passed in as a source into a Protein /// sequence of amino acids. Allows the setting of a particular index /// into the source sequence for the start of translation. /// /// For instance if you wanted to translate all the phases of an RNA /// sequence you could perform the following: /// /// Sequence rnaSeq = new Sequence(Alphabets.RNA), "AUGCGCCCG"); /// Sequence phase1 = ProteinTranslation.Translate(rnaSeq, 0); /// Sequence phase2 = ProteinTranslation.Translate(rnaSeq, 1); /// Sequence phase3 = ProteinTranslation.Translate(rnaSeq, 2); /// </summary> /// <param name="source">The source RNA sequence to translate from</param> /// <param name="nucleotideOffset"> /// An offset into the source sequence from which to begin translation. /// Note that this offset begins counting from 0. Set this parameter to /// 0 to translate the entire source sequence. Set it to 1 to ignore the /// first nucleotide in the source sequence, etc. /// </param> /// <returns></returns> public static ISequence Translate(ISequence source, int nucleotideOffset) { Sequence result = new Sequence(Alphabets.Protein); result.IsReadOnly = false; result.ID = "AA: " + source.ID; result.DisplayID = "Amino Acids translated from: " + source.DisplayID; for (int i = nucleotideOffset; i < source.Count - 2; i += 3) { result.Add(Codons.Lookup(source, i)); } return(result); }
/// <summary> /// Passes a valid RNA sequence with offset value and validates if /// Lookup(sequence) method is returning corresponding amino acid. /// </summary> /// <param name="sequenceNode">Sequence xml node.</param> /// <param name="offsetNode">Offset node with value.</param> /// <param name="aminoAcidNode">Expected amino acid value.</param> void ValidateCodonsTranslationWithOffset(string sequenceNode, string offsetNode, string aminoAcidNode) { // Get Node values from XML. string expectedSeq = _utilityObj._xmlUtil.GetTextValue(Constants.TranslationNode, sequenceNode); string expectedAminoAcid = _utilityObj._xmlUtil.GetTextValue(Constants.TranslationNode, aminoAcidNode); string expectedOffset = _utilityObj._xmlUtil.GetTextValue(Constants.CodonsNode, offsetNode); // Translate Rna to corresponding amino acid. ISequence codonsTranslation = new Sequence(Alphabets.RNA, expectedSeq); AminoAcid aminoAcid = Codons.Lookup(codonsTranslation, int.Parse(expectedOffset, null)); // Validate Codon Translation. Assert.AreEqual(expectedAminoAcid.ToString((IFormatProvider)null), aminoAcid.Symbol.ToString((IFormatProvider)null)); ApplicationLog.WriteLine( "Translation P1: Codon translation with offset validation is completed successfully."); }
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); var 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(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 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."); }