コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        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.");
        }
コード例 #4
0
        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.");
        }
コード例 #5
0
        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.");
        }
コード例 #6
0
        /// <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);
        }
コード例 #7
0
        /// <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.");
        }
コード例 #8
0
        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.");
        }
コード例 #9
0
        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.");
        }