public void TranscribeRnaTest()
        {
            // Arrange
            var dna = new Dna("GATGGAACTTGACTACGTAAATT");
            var expectedRna = new Rna("GAUGGAACUUGACUACGUAAAUU");

            // Act
            var resultRna = dna.TranscribeRna();

            // Assert
            Assert.That(expectedRna, Is.EqualTo(resultRna));
        }
        public void ReversedDnaTest()
        {
            // Arrange
            var dna = new Dna("AAAACCCGGT");
            var expectedDna = new Dna("ACCGGGTTTT");

            // Act
            var resultDna = dna.ReverseComplementDna();

            // Assert
            Assert.That(expectedDna, Is.EqualTo(resultDna));
        }
        public void HammingDistanceTest()
        {
            // Arrange
            var dna = new Dna("GAGCCTACTAACGGGAT");
            var mutatedDna = new Dna("CATCGTAATGACGGCCT");
            const int expectedMutationCount = 7;

            // Act
            var mutationCount = dna.HammingDistance(mutatedDna);

            // Assert
            Assert.That(expectedMutationCount, Is.EqualTo(mutationCount));
        }
        public void NucleotidesCountTest()
        {
            // Arrange
            var dna = new Dna("AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC");
            var expectedResult = new Dictionary<char, int>
                { 
                { 'A', 20 }, { 'C', 12 }, { 'G', 17 }, { 'T', 21 }
            };

            // Act
            var actualResult = dna.NucleotidesCount();

            // Assert
            Assert.That(expectedResult, Is.EqualTo(actualResult));
        }
        /// <summary>
        /// Solves the REVC problem (http://rosalind.info/problems/revc/).
        /// </summary>
        private static void SolveRevc()
        {
            var dna = new Dna(File.ReadAllText(@"Data\REVC\rosalind_revc.txt"));

            var reverseComplement = dna.ReverseComplementDna();

            SaveResult(@"Results\rosalind_revc_results.txt", reverseComplement.Symbols);
        }
        /// <summary>
        /// Solves the RNA problem (http://rosalind.info/problems/rna/).
        /// </summary>
        private static void SolveRna()
        {
            var dna = new Dna(File.ReadAllText(@"Data\RNA\rosalind_rna.txt"));

            var rna = dna.TranscribeRna();

            SaveResult(@"Results\rosalind_rna_results.txt", rna.Symbols);
        }
        private static void SolveDna()
        {
            var dna = new Dna(File.ReadAllText(@"Data\DNA\rosalind_dna.txt"));

            var nucleotidesCount = dna.NucleotidesCount();

            var result = String.Format("{0} {1} {2} {3}", nucleotidesCount['A'],
                                       nucleotidesCount['C'], nucleotidesCount['G'], nucleotidesCount['T']);

            SaveResult(@"Results\rosalind_dna_results.txt", result);
        }
        /// <summary>
        /// Solves the HAMM problem (http://rosalind.info/problems/hamm/).
        /// </summary>
        private static void SolveHamm()
        {
            var lines = File.ReadAllLines(@"Data\HAMM\rosalind_hamm.txt");
            var firstDna = new Dna(lines[0].Trim());
            var secondDna = new Dna(lines[1].Trim());

            var hammingDistance = firstDna.HammingDistance(secondDna);

            SaveResult(@"Results\rosalind_hamm_results.txt", hammingDistance.ToString(CultureInfo.InvariantCulture));
        }
Esempio n. 9
0
 public int HammingDistance(Dna dna)
 {
     return(Symbols.Where((t, i) => t != dna.Symbols[i]).Count());
 }
 public int HammingDistance(Dna dna)
 {
     return Symbols.Where((t, i) => t != dna.Symbols[i]).Count();
 }