introduce
Aim
Build Coding Book
In English text, each letter has a certain frequency. We constructed a list of letter frequencies for each letter. Also, in living organisms, each codon is used with a certain frequency. Based on this relationship between English letters and codons, we find out the correspondence between letters and codons by using DFS (Depth First Search) algorithm and optimization arithmetic.
Programming
1. Create a letter-frequency table and a codon-frequency table.
According to the literature, we obtain the information of the frequency of letters and codons.
2. Find out the correspondence between letters and codons by using DFS Algorithm.
We build up a tree structure where the codons and the frequency of the codons are stored on each node. Then we use the depth-first search algorithm to traverse down from the root node successively, and match condon-frequence with the letter- frequency to obtain the correspondence between letters and codons.
The tree structure is shown in the figure 1.
Figure 1. Tree Structute.
3. Get the optimal solution by using optional algorithm.
In step 2, we get the correspondence between letters and codons. But some letters have multiple corresponding relationships. For example, in figure 1, the letters E and T correspond to codons GAU, GCU, GAA, E and T also correspond to codons GAU, GCU, AUG. What’s more, the letter T can also correspond to codons GAU, GCU, GCA. Therefore, we use the optimal algorithm to determine one of the multiple correspondence.
RESULTS
Print the correspondence between letters and codons
Output:
Draw letter-frequency histogram
Others
Visual Software
We developed a visual software. There are an input textbox, an output textbox, two radio buttons and a translate button in the software interface. We can choose radio buttons to select letters to codons or codons to letters. In addition to these, our software can also provide open files, copy files, cut files, save files, print files and other basic functions.
Software interface:
Letters to Codons:
Codons to letters: