Difference between revisions of "Team:Tongji Software/Model"

Line 661: Line 661:
 
                 <h1 id="medalMainTitle"><b style="font-size:1.2em; font-weight: bold;">M</b>ODEL</h1>
 
                 <h1 id="medalMainTitle"><b style="font-size:1.2em; font-weight: bold;">M</b>ODEL</h1>
 
                 <img src="https://static.igem.org/mediawiki/2019/e/e1/T--Tongji_Software--picture-logo2.png" style="width:100vw"></img>
 
                 <img src="https://static.igem.org/mediawiki/2019/e/e1/T--Tongji_Software--picture-logo2.png" style="width:100vw"></img>
<div id="Pathway_search_jump" style="height:9em;"></div>
 
  
                 <h1 class="medalSubTitle"><b>P</b>ATHWAY <b>S</b>EARCH</h1>
+
                <!-- <h1 class="HpSubTitle"><b>X</b>IANG <b>M</b>ING <b>H</b>IGH <b>S</b>CHOOL</h1> -->
                 <p><b>Overview</b></p><div style="height:0.6vw"></div>
+
                 <h1 class="medalSubTitle"><b>P</b>ATHWAY<b>S</b>EARCH</h1>
 +
                 <p><b>Overview</b></p>
  
  
Line 674: Line 674:
 
                 <div class="TextContainer">
 
                 <div class="TextContainer">
 
                     <br><br>
 
                     <br><br>
                     <p><b>Previous work</b></p><div style="height:0.6vw"></div>
+
                     <p><b>Previous work</b></p>
  
 
                     <div>
 
                     <div>
Line 681: Line 681:
 
                             precursor competition, toxicity of metabolites and atom conservation. Details are shown in last year's model.</p>
 
                             precursor competition, toxicity of metabolites and atom conservation. Details are shown in last year's model.</p>
 
                     </div>
 
                     </div>
                     <img src="../images/DFS.gif" class="PushImage" width="60%" alt="DFS">
+
                     <img src="https://static.igem.org/mediawiki/2019/3/3a/T--Tongji_Software--model_DFS.gif" class="PushImage" width="60%" alt="DFS">
 
                 </div>
 
                 </div>
  
Line 687: Line 687:
  
 
                 <br>
 
                 <br>
                 <p><b>Optimization of DFS</b></p><div style="height:0.6vw"></div>
+
                 <p><b>Optimization of DFS</b></p>
 
                 <p>We optimize the internal implementation logic and other details of the DFS algorithm to reduce its time complexity. We compile it from python script to dynamic link library through Cython module, which makes it run much faster when it
 
                 <p>We optimize the internal implementation logic and other details of the DFS algorithm to reduce its time complexity. We compile it from python script to dynamic link library through Cython module, which makes it run much faster when it
 
                     is invoked. As can be seen from the following figure (fig.2), after optimization, the running speed of DFS was accelerated by nearly ten times on average.</p>
 
                     is invoked. As can be seen from the following figure (fig.2), after optimization, the running speed of DFS was accelerated by nearly ten times on average.</p>
 
                 <br>
 
                 <br>
                 <img src="../images/Optimization_of_DFS.png" class="PushImage" width="100%" alt="DFS"><br>
+
                 <img src="https://static.igem.org/mediawiki/2019/3/37/T--Tongji_Software--model_Optimization_of_DFS.png" class="PushImage" width="100%" alt="DFS"><br>
 
                 <br>
 
                 <br>
  
  
                 <p><b>Another choice: BFS</b></p><div style="height:0.6vw"></div>
+
                 <p><b>Another choice: BFS</b></p>
 
                 <p>By transforming fig.2 into a logarithmic axis (fig.3), we can find that the operation time of DFS increases exponentially with the increase of search depth. Therefore, we need another algorithm to deal with the search at high search depth.
 
                 <p>By transforming fig.2 into a logarithmic axis (fig.3), we can find that the operation time of DFS increases exponentially with the increase of search depth. Therefore, we need another algorithm to deal with the search at high search depth.
 
                     Finally, we implemented a heuristic algorithm: greedy best first algorithm (BFS). BFS is scoring at the same time of searching, and the one with the highest score in the current searched path is selected for further searching each
 
                     Finally, we implemented a heuristic algorithm: greedy best first algorithm (BFS). BFS is scoring at the same time of searching, and the one with the highest score in the current searched path is selected for further searching each
 
                     time, so as to quickly reach the local optimal solution (fig.4).</p>
 
                     time, so as to quickly reach the local optimal solution (fig.4).</p>
 
                 <br>
 
                 <br>
                 <img src="../images/Another_choice_BFS1.png" class="PushImage" width="100%" alt="DFS"><br>
+
                 <img src="https://static.igem.org/mediawiki/2019/d/da/T--Tongji_Software--model_Another_choice_BFS1.png" class="PushImage" width="100%" alt="DFS"><br>
                 <img src="../images/Another_choice_BFS2.png" class="PushImage" width="70%" alt="DFS"><br>
+
                 <img src="https://static.igem.org/mediawiki/2019/5/5a/T--Tongji_Software--model_Another_choice_BFS2.gif" class="PushImage" width="70%" alt="DFS"><br>
 
                 <br>
 
                 <br>
  
                 <p><b>Validation of BFS validity</b></p><div style="height:0.6vw"></div>
+
                 <p><b>Validation of BFS validity</b></p>
 
                 <p>As a heuristic algorithm, the search results of BFS will converge to the local optimal solution instead of the global optimal solution, so we need to verify the accuracy of the search results of BFS.</p>
 
                 <p>As a heuristic algorithm, the search results of BFS will converge to the local optimal solution instead of the global optimal solution, so we need to verify the accuracy of the search results of BFS.</p>
 
                 <br>
 
                 <br>
Line 715: Line 715:
 
                     long. So we can't just use BFS instead of DFS.</p>
 
                     long. So we can't just use BFS instead of DFS.</p>
 
                 <br>
 
                 <br>
                 <img src="../images/BFS_Heatmap.png" class="PushImage" width="100%" alt="DFS"><br>
+
                 <img src="https://static.igem.org/mediawiki/2019/2/24/T--Tongji_Software--model_BFS_Heatmap.png" class="PushImage" width="100%" alt="DFS"><br>
                 <img src="../images/Validation_of_BFS.png" class="PushImage" width="100%" alt="DFS"><br>
+
                 <img src="https://static.igem.org/mediawiki/2019/e/e0/T--Tongji_Software--model_Validation_of_BFS.png" class="PushImage" width="100%" alt="DFS"><br>
  
                 <p><b>Build a model</b></p><div style="height:0.6vw"></div>
+
                 <p><b>Build a model</b></p>
 
                 <p>We trained a machine learning model, the random forest, to determine which algorithm could perform the search faster before the search and use it to perform the search.</p>
 
                 <p>We trained a machine learning model, the random forest, to determine which algorithm could perform the search faster before the search and use it to perform the search.</p>
 
                 <br>
 
                 <br>
Line 726: Line 726:
 
                     is large, the tag value tends to 0 or 1, which clearly tells the machine learning model which category the sample should fall into.</p>
 
                     is large, the tag value tends to 0 or 1, which clearly tells the machine learning model which category the sample should fall into.</p>
 
                 <br>
 
                 <br>
                 <img src="../images/Build_a_model1.png" class="PushImage" width="60%" alt="DFS"><br>
+
                 <img src="https://static.igem.org/mediawiki/2019/b/bb/T--Tongji_Software--model_Build_a_model1.png" class="PushImage" width="60%" alt="DFS"><br>
  
  
Line 732: Line 732:
 
                     the model to the total time of the optimal algorithm selected each time. The smaller the ratio, the closer the prediction results are to the optimal value.</p>
 
                     the model to the total time of the optimal algorithm selected each time. The smaller the ratio, the closer the prediction results are to the optimal value.</p>
 
                 <br>
 
                 <br>
                 <img src="../images/Build_a_model2.png" class="PushImage" width="60%" alt="DFS">
+
                 <img src="https://static.igem.org/mediawiki/2019/e/ef/T--Tongji_Software--model_Build_a_model2.png" class="PushImage" width="60%" alt="DFS">
 
                 <p>Considering the higher stability and accuracy of DFS, the final dividing line of which algorithm will be adjusted to a value that minimizes the scoring function , which is around 0.3.</p>
 
                 <p>Considering the higher stability and accuracy of DFS, the final dividing line of which algorithm will be adjusted to a value that minimizes the scoring function , which is around 0.3.</p>
 
                 <br>
 
                 <br>
                 <img src="../images/Build_a_model3.png" class="PushImage" width="60%" alt="DFS">
+
                 <img src="https://static.igem.org/mediawiki/2019/8/86/T--Tongji_Software--model_Build_a_model3.png" class="PushImage" width="60%" alt="DFS">
 
                 <p>After the above steps, we trained a random forest regression model and obtained 3000 random test samples to verify it. The results showed that the calculation of these test samples only using DFS took about 10,000 seconds. With BFS alone,
 
                 <p>After the above steps, we trained a random forest regression model and obtained 3000 random test samples to verify it. The results showed that the calculation of these test samples only using DFS took about 10,000 seconds. With BFS alone,
 
                     it takes about 260,000 seconds; When the best algorithm is used every time, it takes about 7000 seconds. When using the model for prediction, it takes 9,100 seconds. Our model makes our running speed close to the theoretical optimal
 
                     it takes about 260,000 seconds; When the best algorithm is used every time, it takes about 7000 seconds. When using the model for prediction, it takes 9,100 seconds. Our model makes our running speed close to the theoretical optimal
Line 743: Line 743:
  
 
             <section id="Enzyme_selection" class="cd-section">
 
             <section id="Enzyme_selection" class="cd-section">
                <h1 class="medalSubTitle"><b>E</b>NZYME<b> S</b>ELECTION</h1>
+
                <h1 class="medalSubTitle"><b>E</b>NZYME<b> S</b>ELECTION</h1>
 
                 <br><br>
 
                 <br><br>
 
+
                 <p><b>Overview</b></p>
                 <p><b>Overview</b></p><div style="height:0.6vw"></div>
+
 
                 <p>For each enzyme in the pathway by searching or just for one enzyme selection, we can get it’s physical and chemical properties in each organism that exist the selected enzyme. First of all, we make a hypothesis that the users’ experimental
 
                 <p>For each enzyme in the pathway by searching or just for one enzyme selection, we can get it’s physical and chemical properties in each organism that exist the selected enzyme. First of all, we make a hypothesis that the users’ experimental
                     engineering bacteria is E.coli or yeast. So, we compare all the organism with E.coli or yeast with physical and chemical properties. </p>
+
                     engineering bacteria is E.coli or yeast. So we compare all the organism with E.coli or yeast with physical and chemical properties. </p>
 
                 <br>
 
                 <br>
                 <p>After reading paper, we found that there is no standard or formula for this compare methods, and the environment is stable in every organism <sup><a href="https://2019.igem.org/Team:Tongji_Software/Model#Reference" style="width:3px;">[1]</a></sup>. So, we build our enzyme score model by talking about with teachers.</p>
+
                 <p>After reading paper, we found that there is no standard or formula for this compare methods, and the environment is stable[] in every organism. So we build our enzyme score model by talking about with teachers.</p>
                 <br><br><br>
+
                 <br>
 
+
                 <p><b>KKM and KM comparison score</b></p>
                 <p><b>KKM and KM comparison score</b></p><div style="height:0.6vw"></div>
+
 
                 <p>After we get many enzyme records, considering the difference of magnitude, we use the standardization of dispersion to calculate the comparison score. </p>
 
                 <p>After we get many enzyme records, considering the difference of magnitude, we use the standardization of dispersion to calculate the comparison score. </p>
 
                 <br>
 
                 <br>
Line 759: Line 757:
 
                 <br>
 
                 <br>
 
                 <p>First, we get all KM value and KKM value for selected enzymes as two list. We calculate the KM and KKM position in the interval of KM list and KKM list. And the position distribution is the KKM and KM comparison score.</p>
 
                 <p>First, we get all KM value and KKM value for selected enzymes as two list. We calculate the KM and KKM position in the interval of KM list and KKM list. And the position distribution is the KKM and KM comparison score.</p>
                 <img src="../images/KM_score.png" class="PushImage" width="50%" alt="DFS"><br>
+
                 <img src="https://static.igem.org/mediawiki/2019/f/f7/T--Tongji_Software--model_KM_score.png" class="PushImage" width="50%" alt="DFS"><br>
 
                 <p>The way of calculate KKM score is the same.</p>
 
                 <p>The way of calculate KKM score is the same.</p>
                 <img src="../images/KKM_score.png" class="PushImage" width="50%" alt="DFS"><br>
+
                 <img src="https://static.igem.org/mediawiki/2019/b/b0/T--Tongji_Software--model_KKM_score.png" class="PushImage" width="50%" alt="DFS"><br>
 
                 <br>
 
                 <br>
 
+
                 <p><b>pH and temperature similarity score</b></p>
                 <p><b>pH and temperature similarity score</b></p><div style="height:0.6vw"></div>
+
 
                 <p>We make a statistic in the data to build a model for the comparison between experimental engineering bacteria and select enzyme. </p>
 
                 <p>We make a statistic in the data to build a model for the comparison between experimental engineering bacteria and select enzyme. </p>
 
                 <br>
 
                 <br>
Line 773: Line 770:
 
                 <br>
 
                 <br>
 
                 <p>Among this statistic, if there is pH record in database, it will be added to the pH list. If not, we count the KM value from other enzymes that exists in the same organism. And get the median as the substitute. Temperature is the same.</p>
 
                 <p>Among this statistic, if there is pH record in database, it will be added to the pH list. If not, we count the KM value from other enzymes that exists in the same organism. And get the median as the substitute. Temperature is the same.</p>
                 <img src="../images/flow.png" class="PushImage" width="60%" alt="DFS"><br>
+
                 <img src="https://static.igem.org/mediawiki/2019/5/57/T--Tongji_Software--model_flow.png" class="PushImage" width="60%" alt="DFS"><br>
 
                 <p>Base on this model, we consider the frequency as the similarity score.</p>
 
                 <p>Base on this model, we consider the frequency as the similarity score.</p>
 
                 <br>
 
                 <br>
 
 
                 <p><b>Score formula</b></p>
 
                 <p><b>Score formula</b></p>
 
                 <br>
 
                 <br>
 
                 <p>Considering the priority of each physical and chemical properties, we simulation this formula as the enzyme score model.</p>
 
                 <p>Considering the priority of each physical and chemical properties, we simulation this formula as the enzyme score model.</p>
 
                 <br>
 
                 <br>
                 <img src="../images/enzyme_score-white.png" class="PushImage" width="70%" alt="DFS"><br><br>
+
                 <img src="https://static.igem.org/mediawiki/2019/8/8f/T--Tongji_Software--model_enzyme_score-white.png" class="PushImage" width="70%" alt="DFS"><br><br>
 
                 <p>After ranking selected enzymes by the score get from this formula, we can get the enzyme selection result for each enzyme.</p>
 
                 <p>After ranking selected enzymes by the score get from this formula, we can get the enzyme selection result for each enzyme.</p>
  
Line 790: Line 786:
 
                 <h1 class="medalSubTitle"><b>C</b>ODON<b> O</b>PTIMIZATION</h1>
 
                 <h1 class="medalSubTitle"><b>C</b>ODON<b> O</b>PTIMIZATION</h1>
 
                 <br><br>
 
                 <br><br>
 
+
                 <p><b>Codon termed</b></p>
                 <p><b>Codon termed</b></p><div style="height:0.6vw"></div>
+
 
                 <p>In the section of codon optimization, we want to make the enzyme sequence that we get from different organisms have a stable and even a high expression level in our target organism, and meanwhile keep the original codon environment of
 
                 <p>In the section of codon optimization, we want to make the enzyme sequence that we get from different organisms have a stable and even a high expression level in our target organism, and meanwhile keep the original codon environment of
 
                     exogenous gene as possible as we could. So, we abandoned the popular method called “codon harmonization”, using the thinking of random point mutation to instead, only replace specific codons but not almost change them all like what
 
                     exogenous gene as possible as we could. So, we abandoned the popular method called “codon harmonization”, using the thinking of random point mutation to instead, only replace specific codons but not almost change them all like what
                     “codon harmonization” do.  
+
                     “codon harmonization” do. So, in order to decide which codons could be replaced, we introduce a parameter to represent the relative adaptiveness of a codon termed wi. The wi represents the ratio between the using frequency of the current
<br>So, in order to decide which codons could be replaced, we introduce a parameter to represent the relative adaptiveness of a codon termed wi. The wi represents the ratio between the using frequency of the current
+
 
                     codon (fi) and the using frequency of the most frequent synonymous codon for that amino acid (max(fj)), and in a way wi represents the codon usage bias of chassis.
 
                     codon (fi) and the using frequency of the most frequent synonymous codon for that amino acid (max(fj)), and in a way wi represents the codon usage bias of chassis.
 
                 </p><br>
 
                 </p><br>
                 <img src="../images/wi.png" class="PushImage" width="60%" alt="DFS"><br>
+
                 <img src="https://static.igem.org/mediawiki/2019/3/33/T--Tongji_Software--model_wi.png" class="PushImage" width="60%" alt="DFS"><br>
 
+
                 <p><b>GC content</b></p>
                 <p><b>GC content</b></p><div style="height:0.6vw"></div>
+
                 <p>The using frequency of every codon in E.coli and yeast can be accessed from kazusa online database[1] or GenBank[2]. When we get a table of using frequency, a threshold can be set to screen and find codons with low wi score which may cause
                 <p>The using frequency of every codon in E.coli and yeast can be accessed from kazusa online database <sup><a href="https://2019.igem.org/Team:Tongji_Software/Model#Reference">[2]</a></sup> or GenBank <sup><a href="https://2019.igem.org/Team:Tongji_Software/Model#Reference">[3]</a></sup>. When we get a table of using frequency, a threshold can be set to screen and find codons with low wi score which may cause
+
 
                     negative influence on expression. So here we can have a candidate codon list filled by codons which were filtered out in previous step, later we can random choice some of them to be replaced with its synonymous codon which has a higher
 
                     negative influence on expression. So here we can have a candidate codon list filled by codons which were filtered out in previous step, later we can random choice some of them to be replaced with its synonymous codon which has a higher
 
                     using frequency. To figure out how many codons should be replaced and to evaluate the probable effect on expression level, we introduce GC content and CAI as our parameters. A sequence’s GC content can be computed from the ratio between
 
                     using frequency. To figure out how many codons should be replaced and to evaluate the probable effect on expression level, we introduce GC content and CAI as our parameters. A sequence’s GC content can be computed from the ratio between
 
                     the sum of base G and base C and the total number of bases. If the GC content of an exogenous gene is similar to the GC content of target organism’s genome, this exogenous gene is considered to have a better expressing performance
 
                     the sum of base G and base C and the total number of bases. If the GC content of an exogenous gene is similar to the GC content of target organism’s genome, this exogenous gene is considered to have a better expressing performance
 
                     in target organism.
 
                     in target organism.
 +
 
                 </p>
 
                 </p>
 
                 <br>
 
                 <br>
                 <img src="../images/GC.png" class="PushImage" width="60%" alt="DFS"><br>
+
                 <img src="https://static.igem.org/mediawiki/2019/8/8c/T--Tongji_Software--model_GC.png" class="PushImage" width="60%" alt="DFS"><br>
 
+
                 <p><b>Codon Adaptation Index (CAI)</b></p>
                 <p><b>Codon Adaptation Index (CAI)</b></p><div style="height:0.6vw"></div>
+
                 <p>And the Codon Adaptation Index (CAI) is the most widespread technique for analyzing codon usage bias and predicting the level of expression of a gene based on its codon sequence [3]. The range of CAI is between 0 and 1, if its value is
                 <p>And the Codon Adaptation Index (CAI) is the most widespread technique for analyzing codon usage bias and predicting the level of expression of a gene based on its codon sequence <sup><a href="https://2019.igem.org/Team:Tongji_Software/Model#Reference">[4]</a></sup>. The range of CAI is between 0 and 1, if its value is
+
 
                     closer to 1 which means that sequence may have better expressing level in that target organism. The CAI can be calculated from the geometric mean of the relative adaptiveness of each codon (wi) over the total number of codons (L).</p>
 
                     closer to 1 which means that sequence may have better expressing level in that target organism. The CAI can be calculated from the geometric mean of the relative adaptiveness of each codon (wi) over the total number of codons (L).</p>
 
                 <br>
 
                 <br>
                 <img src="../images/CAI.png" class="PushImage" width="20%" alt="DFS"><br>
+
                 <img src="https://static.igem.org/mediawiki/2019/3/33/T--Tongji_Software--model_CAI.png" class="PushImage" width="20%" alt="DFS"><br>
 
                 <p>All the preparations have been done, and here comes to codon optimization. First, we generate a candidate sequence list from input sequence by replacing codon in candidate codon list in different random combinations, then we consider both
 
                 <p>All the preparations have been done, and here comes to codon optimization. First, we generate a candidate sequence list from input sequence by replacing codon in candidate codon list in different random combinations, then we consider both
 
                     GC content and CAI to filter and rank our candidate sequence list, and finally give the optimized sequence which has best GC content or highest CAI value.</p>
 
                     GC content and CAI to filter and rank our candidate sequence list, and finally give the optimized sequence which has best GC content or highest CAI value.</p>
 
                 <br>
 
                 <br>
 
+
                 <p><b>Example</b></p>
                 <p><b>Example</b></p><div style="height:0.6vw"></div>
+
 
                 <p>Here we show an example. We use the sequences of acetyl-CoA C-acetyltransferase [EC:2.3.1.9] from different organisms (donors) and try to optimize them to let them have a higher possibility to express better in E.coli. the average GC content
 
                 <p>Here we show an example. We use the sequences of acetyl-CoA C-acetyltransferase [EC:2.3.1.9] from different organisms (donors) and try to optimize them to let them have a higher possibility to express better in E.coli. the average GC content
 
                     of E.coli is 0.58, so we set the target GC content range as [0.574, 0.586]. And the results are as follow.</p>
 
                     of E.coli is 0.58, so we set the target GC content range as [0.574, 0.586]. And the results are as follow.</p>
                 <img src="../images/codon_plot1.png" class="PushImage" width="60%" alt="DFS"><br>
+
                 <img src="https://static.igem.org/mediawiki/2019/5/55/T--Tongji_Software--model_condon_plot1.png" class="PushImage" width="60%" alt="DFS"><br>
                 <img src="../images/codon_plot2.png" class="PushImage" width="60%" alt="DFS"><br>
+
                 <img src="https://static.igem.org/mediawiki/2019/7/76/T--Tongji_Software--model_condon_plot2.png" class="PushImage" width="60%" alt="DFS"><br>
 
             </section>
 
             </section>
 
   
 
   

Revision as of 06:25, 19 October 2019

Tongji Software | Pathlab

PROJECT Open navigation

ENZYME SELECTION



Overview

For each enzyme in the pathway by searching or just for one enzyme selection, we can get it’s physical and chemical properties in each organism that exist the selected enzyme. First of all, we make a hypothesis that the users’ experimental engineering bacteria is E.coli or yeast. So we compare all the organism with E.coli or yeast with physical and chemical properties.


After reading paper, we found that there is no standard or formula for this compare methods, and the environment is stable[] in every organism. So we build our enzyme score model by talking about with teachers.


KKM and KM comparison score

After we get many enzyme records, considering the difference of magnitude, we use the standardization of dispersion to calculate the comparison score.


Among this statistic, if there is KM record in database, it will be added to the KM list. If not, we count the KM value from other enzymes that catalytic the same substrate. And get the median as the substitute.


First, we get all KM value and KKM value for selected enzymes as two list. We calculate the KM and KKM position in the interval of KM list and KKM list. And the position distribution is the KKM and KM comparison score.

DFS

The way of calculate KKM score is the same.

DFS

pH and temperature similarity score

We make a statistic in the data to build a model for the comparison between experimental engineering bacteria and select enzyme.


We statistic every physical and chemical properties of enzyme come from E.coli or yeast. And we make the statistic data as a hist plot. Like the plot show, this distribution is normally distributed. So we use this model to score the similarity between enzyme and host’s environment.


For this statistic, we first combine pHR (pH range) and pHO(pH optinism) together, combine TR(Tempereature range) and TO(Temperature optimism) together, choose the median as the suitable pH and Temperature value for the selected enzymes.


Among this statistic, if there is pH record in database, it will be added to the pH list. If not, we count the KM value from other enzymes that exists in the same organism. And get the median as the substitute. Temperature is the same.

DFS

Base on this model, we consider the frequency as the similarity score.


Score formula


Considering the priority of each physical and chemical properties, we simulation this formula as the enzyme score model.


DFS

After ranking selected enzymes by the score get from this formula, we can get the enzyme selection result for each enzyme.

CODON OPTIMIZATION



Codon termed

In the section of codon optimization, we want to make the enzyme sequence that we get from different organisms have a stable and even a high expression level in our target organism, and meanwhile keep the original codon environment of exogenous gene as possible as we could. So, we abandoned the popular method called “codon harmonization”, using the thinking of random point mutation to instead, only replace specific codons but not almost change them all like what “codon harmonization” do. So, in order to decide which codons could be replaced, we introduce a parameter to represent the relative adaptiveness of a codon termed wi. The wi represents the ratio between the using frequency of the current codon (fi) and the using frequency of the most frequent synonymous codon for that amino acid (max(fj)), and in a way wi represents the codon usage bias of chassis.


DFS

GC content

The using frequency of every codon in E.coli and yeast can be accessed from kazusa online database[1] or GenBank[2]. When we get a table of using frequency, a threshold can be set to screen and find codons with low wi score which may cause negative influence on expression. So here we can have a candidate codon list filled by codons which were filtered out in previous step, later we can random choice some of them to be replaced with its synonymous codon which has a higher using frequency. To figure out how many codons should be replaced and to evaluate the probable effect on expression level, we introduce GC content and CAI as our parameters. A sequence’s GC content can be computed from the ratio between the sum of base G and base C and the total number of bases. If the GC content of an exogenous gene is similar to the GC content of target organism’s genome, this exogenous gene is considered to have a better expressing performance in target organism.


DFS

Codon Adaptation Index (CAI)

And the Codon Adaptation Index (CAI) is the most widespread technique for analyzing codon usage bias and predicting the level of expression of a gene based on its codon sequence [3]. The range of CAI is between 0 and 1, if its value is closer to 1 which means that sequence may have better expressing level in that target organism. The CAI can be calculated from the geometric mean of the relative adaptiveness of each codon (wi) over the total number of codons (L).


DFS

All the preparations have been done, and here comes to codon optimization. First, we generate a candidate sequence list from input sequence by replacing codon in candidate codon list in different random combinations, then we consider both GC content and CAI to filter and rank our candidate sequence list, and finally give the optimized sequence which has best GC content or highest CAI value.


Example

Here we show an example. We use the sequences of acetyl-CoA C-acetyltransferase [EC:2.3.1.9] from different organisms (donors) and try to optimize them to let them have a higher possibility to express better in E.coli. the average GC content of E.coli is 0.58, so we set the target GC content range as [0.574, 0.586]. And the results are as follow.

DFS
DFS

REFERENCE



[1] C. Brininger, S. Spradlin, L. Cobani, C. Evilia. The more adaptive to change, the more likely you are to survive: Protein adaptation in extremophiles, Seminars in Cell & Developmental Biology, Volume 84,2018, Pages 158-169, ISSN 1084-9521, https://doi.org/10.1016/j.semcdb.2017.12.016.

[2]. http://www.kazusa.or.jp/codon/

[3]. https://www.ncbi.nlm.nih.gov/genbank/

[4]. Sharp, Paul M.; Li, Wen-Hsiung. The codon adaptation index-a measure of directional synonymous codon usage bias, and its potential applications. Nucleic Acids Research. 1987.15 (3): 1281–1295. doi:10.1093/nar/15.3.1281.