Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

C++ Codons.txt (file contents) uuuuucuuauugcuucuccuacugauuaucauaaugguugucguagugu

ID: 3869255 • Letter: C

Question

C++

Codons.txt (file contents)

uuuuucuuauugcuucuccuacugauuaucauaaugguugucguagugucuuccucaucgccucccccaccgacuaccacaacggcugccgcagcguauuacuaauagcaucaccaacagaauaacaaauuuuucuuauugcuucuccuacugauuaucauaaugguugucguagugucuuccucaucgccucccccaccgacuaccacaacggcugccgcagcguauuacuaauagcaucaccaacagaauaacaaauuuuucuuauugcuucuccuacugauuaucauaaugguugucguagugucuuccucaucgccucccccaccgacuaccacaacggcugccgcagcguauuacuaauagcaucaccaacagaauaacaaauuuuucuuauugcuucuccuacugauuaucauaaugguugucguagugucuuccucaucgccucccccaccgacuaccacaacggcugccgcagcguauuacuaauagcaucaccaacagaauaacaaauuuuucuuauugcuucuccuacugauuaucauaaugguugucguagugucuuccucaucgccucccccaccgacuaccacaacggcugccgcagcguauuacuaauagcaucaccaacagaauaacaaauuuuucuuauugcuucuccuacugauuaucauaaugguugucguagugucuuccucaucgccucccccaccgacuaccacaacggcugccgcagcguauuacuaauagcaucaccaacagaauaacaaauuuuucuuauugcuucuccuacugauuaucauaaugguugucguagugucuuccucaucgccucccccaccgacuaccacaacggcugccgcagcguauuacuaauagcaucaccaacagaauaacaaauuuuucuuauugcuucuccuacugauuaucauaaugguugucguagugucuuccucaucgccucccccaccgacuaccacaacggcugccgcagcguauuacuaauagcaucaccaacagaauaacaaauuuuucuuauugcuucuccuacugauuaucauaaugguugucguagugucuuccucaucgccucccccaccgacuaccacaacggcugccgcagcguauuacuaauagcaucaccaacagaauaacaaauuuuucuuauugcuucuccuacugauuaucauaaugguugucguagugucuuccucaucgccucccccaccgacuaccacaacggcugccgcagcguauuacuaauagcaucaccaacagaauaacaaauuuuucuuauugcuucuccuacugauuaucauaaugguugucguagugucuuccucaucgccucccccaccgacuaccacaacggcugccgcagcguauuacuaauagcaucaccaacagaauaacaaauuuuucuuauugcuucuccuacugauuaucauaaugguugucguagugucuuccucaucgccucccccaccgacuaccacaacggcugccgcagcguauuacuaauagcaucaccaacagaauaacaaauuuuucuuauugcuucuccuacugauuaucauaaugguugucguagugucuuccucaucgccucccccaccgacuaccacaacggcugccgcagcguauuacuaauagcaucaccaacagaauaacaaauuuuucuuauugcuucuccuacugauuaucauaaugguugucguagugucuuccucaucgccucccccaccgacuaccacaacggcugccgcagcguauuacuaauagcaucaccaacagaauaacaaauuuuucuuauugcuucuccuacugauuaucauaaugguugucguagugucuuccucaucgccucccccaccgacuaccacaacggcugccgcagcguauuacuaauagcaucaccaacagaauaacaaauuuuucuuauugcuucuccuacugauuaucauaaugguugucguagugucuuccucaucgccucccccaccgacuaccacaacggcugccgcagcguauuacuaauagcaucaccaacagaauaacaaauuuuucuuauugcuucuccuacugauuaucauaaugguugucguagugucuuccucaucgccucccccaccgacuaccacaacggcugccgcagcguauuacuaauagcaucaccaacagaauaacaaauuuuucuuauugcuucuccuacugauuaucauaaugguugucguagugucuuccucaucgccucccccaccgacuaccacaacggcugccgcagcguauuacuaauagcaucaccaacagaauaacaaauuuuucuuauugcuucuccuacugauuaucauaaugguugucguagugucuuccucaucgccucccccaccgacuaccacaacggcugccgcagcguauuacuaauagcaucaccaacagaauaacaaauuuuucuuauugcuucuccuacugauuaucauaaugguugucguagugucuuccucaucgccucccccaccgacuaccacaacggcugccgcagcguauuacuaauagcaucaccaacagaauaacaaauuuuucuuauugcuucuccuacugauuaucauaaugguugucguagugucuuccucaucgccucccccaccgacuaccacaacggcugccgcagcguauuacuaauagcaucaccaacagaauaacaaauuuuucuuauugcuucuccuacugauuaucauaaugguugucguagugucuuccucaucgccucccccaccgacuaccacaacggcugccgcagcguauuacuaauagcaucaccaacagaauaacaaauuuuucuuauugcuucuccuacugauuaucauaaugguugucguagugucuuccucaucgccucccccaccgacuaccacaacggcugccgcagcguauuacuaauagcaucaccaacagaauaacaaauuuuucuuauugcuucuccuacugauuaucauaaugguugucguagugucuuccucaucgccucccccaccgacuaccacaacggcugccgcagcguauuacuaauagcaucaccaacagaauaacaaauuuuucuuauugcuucuccuacugauuaucauaaugguugucguagugucuuccucaucgccucccccaccgacuaccacaacggcugccgcagcguauuacuaauagcaucaccaacagaauaacaaa

Codon_list.txt (file contents)

(IN C++)

Write a program that helps match codons to their corresponding amino acids and vice versa. You will use structures, vectors and classes to accomplish this You will be given two text files: (contents of both files can be found below) Codon list.txt and Codons.txt. be found belo) One of the text files, Codon list.txt, will contain a list of amino acids and their corresponding codons. You will read this file and store the amino acids and their corresponding codons using a class, a vector and a structure to accomplish this Once you have stored this information, you will read another file: Codons.txt. You will check through the file and make sure that it contains no character other than a, u, g and c If it does, display an error message and exit. If it doesn't, proceed A codon is made up of three characters. Read the file Codons.txt and using your class, figure out and store the amino acids in a data structure. Once that is complete, prompt the user: Select one of the following: DA Display all the amino acids found in the file SF Search amino acid (prompts the user to enter the name of an amino acid, displays the number of times it appears in Codons.txt) SC Search amino acid using codon SA Search codon using amino acid E to exit (Only exit the program if the user enters E. Otherwise, keep displaying the menu.)

Explanation / Answer

#include<iostream>
#include<string>
#include<vector>
#include<fstream>

using namespace std;

struct codon_amm {
      string aminoacid;
      string codon;
};

class Codons {
    private:
         vector<codon_amm> list; // for Codon.txt
         vector<codon_amm> list1; // for Codon+list.txt
    public:
        int fill_data(){
          ifstream fin;
          codon_amm am ;
          string data1,data2;
          string line;
          int len;
          int npos;

           fin.open("Codons_list.txt");
           if (!fin){
              cout << "Error in opening file" << endl;
              return -1;
           }
           while (fin >> am.aminoacid >> am.codon){
               list.push_back(am);
           }
           fin.close();
           fin.open("Codon.txt");
           if (!fin){
              cout << "Error in opening file" << endl;
              return -1;
           }
           data1 = "";
           while (getline(fin,line)){
                data1 = data1 + line;
           }
           fin.close();
           for (int i = 0; i<data1.length(); i++)
               if (data1[i] != 'u' && data1[i] != 'a' && data1[i] != 'g' && data1[i] !='c'){
                  cout << "File has error" << endl;
                  return -1;
               }

           for (int i = 0; i<list.size(); i++){
               data2 = data1;
               while (data2.find(list[i].codon) != string::npos){
                   npos = data2.find(list[i].codon);
                   am.codon = list[i].codon;
                   am.aminoacid = list[i].aminoacid;
                   list1.push_back(am);
                   len = data2.length() - npos + 4 ;
                   if ((npos + 3) < data2.length())
                      data2 = data2.substr(npos+3,len);
                   else
                      break;
               }
           }

           return 0;
        }
        void processData(string choice){
          string am_acid;
          int count;
          string codon;

         if (choice == "DA") {
             for (int i = 0; i< list1.size(); i++)
                cout << list1[i].aminoacid << " " << list1[i].codon << endl;
         }
                      
         if (choice == "SF") {
            cout << "Enter amino acid:" << endl;
            cin >> am_acid;
            count = 0;
            for (int i = 0; i <list1.size(); i++)
                if (list1[i].aminoacid == am_acid)
                   count++;
            cout << count << " times appeared in the file Codons.txt" << endl;
         }
         if (choice == "SC") {
            cout << "Enter codon:" << endl;
            cin >> codon;
            count = 0;
            for (int i = 0; i < list1.size(); i++){
                if (list1[i].codon == codon){
                   cout << list1[i].aminoacid << endl;
                   count++;
                }
            }
            if (count == 0) {
                  cout << "Not present in file Codons_list.txt" << endl;
            }
            else{
                 cout << "Found " << count << " entries in file Codons_list.txt"<< endl;
            }
         }

        if (choice == "SA") {
           cout << "Enter aminoacid:" << endl;
           cin >> am_acid;
           count = 0;
           for (int i = 0; i < list1.size(); i++) {
               if (list1[i].aminoacid == am_acid){
                  cout << list1[i].codon << endl;
                  count++;
               }
           }
           if (count == 0){
              cout << "Not present in file Codons_list.txt"<<endl;
           }
           else{
              cout << "Found " << count << " entries in file Codons_list.txt" << endl;
           }
        }  

        }
   
};

int main(){

    Codons cd;
    string choice;
   
    if (cd.fill_data() == -1)
       return 0;              
     
    do {
         cout << "DA Display all ammino acids found in the file" << endl;
         cout << "SF Search amino acid" << endl;
         cout << "SC Search amino acid using codon" << endl;
         cout << "SA Search codon using amino acid" << endl;
         cout << "E to exit" << endl;
         cout << "Enter your choice:" << endl;
         cin >> choice;

         cd.processData(choice);

    } while (choice != "E");   
    return 0;
}