From b4ebc1fe9dd5ca383e75c6a19e0ef526097d368f Mon Sep 17 00:00:00 2001 From: rav4s Date: Fri, 6 Nov 2020 09:56:22 -0600 Subject: [PATCH] added converter file and amino acids file --- amino_acids.py | 132 +++++++++++++++++++++++++++++++++++++++++++++++++ converter.py | 67 +++++++++++++++++++++++++ 2 files changed, 199 insertions(+) create mode 100644 amino_acids.py create mode 100644 converter.py diff --git a/amino_acids.py b/amino_acids.py new file mode 100644 index 0000000..6ddd025 --- /dev/null +++ b/amino_acids.py @@ -0,0 +1,132 @@ +def codons_to_acids(list_of_codons): + newlist = [] + for i in list_of_codons: + if i == "GUU": + newlist.append("Valine") + if i == "GUC": + newlist.append("Valine") + if i == "GUA": + newlist.append("Valine") + if i == "GUG": + newlist.append("Valine") + if i == "GCU": + newlist.append("Alanine") + if i == "GCC": + newlist.append("Alanine") + if i == "GCA": + newlist.append("Alanine") + if i == "GCG": + newlist.append("Alanine") + if i == "GAU": + newlist.append("Aspartic Acid") + if i == "GAC": + newlist.append("Aspartic Acid") + if i == "GAA": + newlist.append("Glutamic Acid") + if i == "GAG": + newlist.append("Glutamic Acid") + if i == "GGU": + newlist.append("Glycine") + if i == "GGC": + newlist.append("Glycine") + if i == "GGA": + newlist.append("Glycine") + if i == "GGG": + newlist.append("Glycine") + if i == "UUU": + newlist.append("Phenylalanine") + if i == "UUC": + newlist.append("Phenylalanine") + if i == "UUA": + newlist.append("Leucine") + if i == "UUG": + newlist.append("Leucine") + if i == "UCU": + newlist.append("Serine") + if i == "UCC": + newlist.append("Serine") + if i == "UCA": + newlist.append("Serine") + if i == "UCG": + newlist.append("Serine") + if i == "UAU": + newlist.append("Tyrosine") + if i == "UAC": + newlist.append("Tyrosine") + if i == "UAA": + newlist.append("STOP") + if i == "UAG": + newlist.append("STOP") + if i == "UGU": + newlist.append("Cysteine") + if i == "UGC": + newlist.append("Cysteine") + if i == "UGA": + newlist.append("STOP") + if i == "UGG": + newlist.append("Tryptophan") + if i == "CUU": + newlist.append("Leucine") + if i == "CUC": + newlist.append("Leucine") + if i == "CUA": + newlist.append("Leucine") + if i == "CUG": + newlist.append("Leucine") + if i == "CCU": + newlist.append("Proline") + if i == "CCC": + newlist.append("Proline") + if i == "CCA": + newlist.append("Proline") + if i == "CCG": + newlist.append("Proline") + if i == "CAU": + newlist.append("Histidine") + if i == "CAC": + newlist.append("Histidine") + if i == "CAA": + newlist.append("Glutamine") + if i == "CAG": + newlist.append("Glutamine") + if i == "CGU": + newlist.append("Arginine") + if i == "CGC": + newlist.append("Arginine") + if i == "CGA": + newlist.append("Arginine") + if i == "CGG": + newlist.append("Arginine") + if i == "AUU": + newlist.append("Isoleucine") + if i == "AUC": + newlist.append("Isoleucine") + if i == "AUA": + newlist.append("Isoleucine") + if i == "AUG": + newlist.append("Methionine") + if i == "ACU": + newlist.append("Threonine") + if i == "ACC": + newlist.append("Threonine") + if i == "ACA": + newlist.append("Threonine") + if i == "ACG": + newlist.append("Threonine") + if i == "AAU": + newlist.append("Asparagine") + if i == "AAC": + newlist.append("Asparagine") + if i == "AAA": + newlist.append("Lysine") + if i == "AAG": + newlist.append("Lysine") + if i == "AGU": + newlist.append("Serine") + if i == "AGC": + newlist.append("Serine") + if i == "AGA": + newlist.append("Arginine") + if i == "AGG": + newlist.append("Arginine") + return newlist diff --git a/converter.py b/converter.py new file mode 100644 index 0000000..4ee77ce --- /dev/null +++ b/converter.py @@ -0,0 +1,67 @@ +#This program turns a strand of DNA into mRNA, which is then converted into amino acids using a codon chart +#MIT License as usual +#Ravi Shah 2020 +from amino_acids import codons_to_acids + +stop_index = "NaN" + +def find_stop(mrna): + if "UAA" in mrna: + print("UAA STOP codon found") + stop_index = mrna.index("UAA") + elif "UAG" in mrna: + print("UAG STOP codon found") + stop_index = mrna.index("UAG") + elif "UGA" in mrna: + print("UGA STOP codon found") + stop_index = mrna.index("UGA") + else: + print("No STOP codon found. Exiting...") + quit() + return stop_index + +def transcription(dna): + res = [] + newlist = [] + res[:] = dna + + for i in res: + if i == "G": + newlist.append("C") + elif i == "C": + newlist.append("G") + elif i == "A": + newlist.append("U") + elif i == "T": + newlist.append("A") + + mrna_strand = ''.join(newlist) + return mrna_strand + +def start_to_stop(mrna): + global stop_index + try: + start_index = mrna.index("AUG") + inter_rna = mrna[start_index:] + stop_index = find_stop(inter_rna) + final_rna = inter_rna[0:stop_index+3] + return(final_rna) + except: + print("Please enter a valid DNA strand") + quit() + +def translation(final_rna): + print("The mRNA strand is:", final_rna) + n = 3 + res = [final_rna[i:i+n] for i in range(0, len(final_rna), n)] + print("The codons are:", res) + list_of_amino_acids = codons_to_acids(res) + print("There are", len(list_of_amino_acids), "amino acids translated from this mRNA strand.") + return list_of_amino_acids + +strand = input("Enter the DNA strand to be transcribed and translated: ") +strand = strand.upper() +messenger_rna = transcription(strand) +thing = start_to_stop(messenger_rna) +print("Here are the amino acids:") +print(translation(thing))