##############################################
#  Program reads in RNA codon dictionary and
#  DNA sequence. Then converts DNA sequence to RNA 
#  and translates an RNA sequence into 
#  a sequence of amino acids
##############################################

def read_DNA(filename):
    """
    Function reads multiple DNA sequences to decode 
    from filename and returns sequences in DNA_list
    """
    f_in = open(filename, 'r')
    DNA_list = []
    for line in f_in:
        DNA_list.append(line.strip().upper())
    return DNA_list

def build_codon_dict():
    """
    Function creates RNA codon to amino acid 
    map (dictionary) from txt file
    """
    f_in = open('RNA_codons.txt')
    RNA_dict = {}
    for line in f_in:
        codon,abv,letter,name = line.strip().split()
        RNA_dict[codon] = [abv,letter,name]
    return RNA_dict
#
# Create RNA codon dictionary
RNA_codon_dict = build_codon_dict()
#
# Read in DNA sequences from file into list
# Assign first DNA sequence to DNA_in and print
#
DNA_list = read_DNA( 'DNA_seq_random.txt') 
DNA_in  = DNA_list[0]   # Assign first line in DNA file 
print ('\n\nDNA sequence is:', DNA_in)
#
# Convert DNA sequence to RNA sequence
RNA_in = DNA_in.replace('T','U')
#
#  Find start codon ('AUG') in RNA sequence
#
######################################################
#
#  YOUR CODE GOES HERE:
#    Parse thru the RNA_in sequence letter by letter 
#    until 3 letter start code 'AUG' is found.  
#    Assign index of position of start code to variable 
#    named : str_pos (used below)
#   
#    If start code not found in RNA_in:
#      Print: 'No starting codon found for this sequence'
#      and exit program. Hints: Use strng/array slicing 
#      e.g. RNA_in[pos:pos+3] is a 3-letter slice of RNA_in 
#      
######################################################
#  If start codon, found:
#  Lookup and print sequence of amino acids
#
print ('Amino acid sequence for this RNA sequence is:')
RNA_seq = RNA_in[str_pos:]
for pos in range(0,len(RNA_seq)-3,3):
    codon = RNA_seq[pos:pos+3]
    if codon in RNA_codon_dict:
        abv,letter,name = RNA_codon_dict[codon]
    else:
        abv = 'XXX'
    print (abv + '-', end="")
    if abv == 'Stop':
        print ('\n\n')
        break

           
        
        

