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

Line 779: Line 779:
 
                     <div class="TextContainer">
 
                     <div class="TextContainer">
 
                         <br><br>
 
                         <br><br>
                        <p><b>Previous work</b></p>
 
 
                         <h2 class="ProSubSubTitle"><b>P</b>REVIOUS <b>W</b>ORK</h2>
 
                         <h2 class="ProSubSubTitle"><b>P</b>REVIOUS <b>W</b>ORK</h2>
  
Line 795: Line 794:
  
 
                     <br>
 
                     <br>
                    <p><b>Optimization of DFS</b></p>
+
                        <h2 class="ProSubSubTitle"><b>O</b>PTIMIZATION of <b>D</b>FS</h2>
 +
 
 
                     <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
 
                     <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>
 
                         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>
Line 804: Line 804:
  
  
                    <p><b>Another Choice: Greedy</b></p>
+
                      <h2 class="ProSubSubTitle"><b>A</b>NOTHER <b>C</b>HOICE</h2>
 
                     <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
 
                     <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).Greedy 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
 
                         depth. Finally, we implemented a heuristic algorithm: greedy best first algorithm (BFS).Greedy 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
Line 814: Line 814:
 
                     <p style="text-align: center;font-size: 1.1vw;">Gif1. Search process of Greedy</p><br><br>
 
                     <p style="text-align: center;font-size: 1.1vw;">Gif1. Search process of Greedy</p><br><br>
 
                     <br>
 
                     <br>
 
+
                      <h2 class="ProSubSubTitle"><b>V</b>ALIDATION of <b>G</b>REEDY<b>V</b>ALIDITY</h2>
                    <p><b>Validation of Greedy Validity</b></p>
+
 
                     <p>As a heuristic algorithm, the search results of Greedy 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 Greedy.</p>
 
                     <p>As a heuristic algorithm, the search results of Greedy 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 Greedy.</p>
 
                     <br>
 
                     <br>
Line 832: Line 831:
 
                     <p style="text-align: center;font-size: 1.1vw;">Fig5. Comparison of time consuming between DFS & Greedy</p><br><br>
 
                     <p style="text-align: center;font-size: 1.1vw;">Fig5. Comparison of time consuming between DFS & Greedy</p><br><br>
  
                    <p><b>Build a Model</b></p>
+
 
 +
                      <h2 class="ProSubSubTitle"><b>B</b>UILD  <b>A</b> <b>M</b>ODEL</h2>
 
                     <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 859: Line 859:
 
                     <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>
+
                     <h2 class="ProSubSubTitle"><b>O</b>VERVIEW</h2>
 
                     <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>
Line 865: Line 865:
 
                     <p>After reading paper, we found that there is no standard or formula for this compare methods, and the environment is stable<sup><a href="#Reference">[5]</a></sup> in every organism. 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<sup><a href="#Reference">[5]</a></sup> in every organism. So we build our enzyme score model by talking about with teachers.</p>
 
                     <br>
 
                     <br>
                     <p><b>KKM and KM Comparison Score</b></p>
+
                     <h2 class="ProSubSubTitle"><b>K</b>KKM and <b>K</b>M <b>C</b>OMPARISON <b>S</b>CORE</h2>
 
                     <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 875: Line 875:
 
                     <img src="https://static.igem.org/mediawiki/2019/b/b0/T--Tongji_Software--model_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>
+
                     <h2 class="ProSubSubTitle">pH and <b>T</b>EMPERATURE <b>S</b>IMILARITY <b>S</b>CORE</h2>
 
                     <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 889: Line 889:
 
                     <br>
 
                     <br>
 
                     <p><b>Score Formula</b></p>
 
                     <p><b>Score Formula</b></p>
 +
                    <h2 class="ProSubSubTitle"><b>S</b>CORE <b>F</b>ORMULA</h2>
 
                     <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>
Line 901: Line 902:
 
                     <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>
+
                     <h2 class="ProSubSubTitle"><b>C</b>ONDON <b>T</b>ERMED</h2>
 
                     <p>In the section of codon optimization<sup><a href="#Reference">[4]</a></sup>, 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
 
                     <p>In the section of codon optimization<sup><a href="#Reference">[4]</a></sup>, 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
 
                         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
Line 909: Line 910:
 
                     <img src="https://static.igem.org/mediawiki/2019/3/33/T--Tongji_Software--model_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>
 +
                    <h2 class="ProSubSubTitle"><b>GC</b> <b>C</b>TENT</h2>
 
                     <p>The using frequency of every codon in E.coli and yeast can be accessed from kazusa online database<sup><a href="#Reference">[1]</a></sup> or GenBank<sup><a href="#Reference">[2]</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
 
                     <p>The using frequency of every codon in E.coli and yeast can be accessed from kazusa online database<sup><a href="#Reference">[1]</a></sup> or GenBank<sup><a href="#Reference">[2]</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
 
                         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
Line 918: Line 920:
 
                     <br>
 
                     <br>
 
                     <img src="https://static.igem.org/mediawiki/2019/8/8c/T--Tongji_Software--model_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>
+
                     <h2 class="ProSubSubTitle"><b>C</b>ODON <b>A</b>DAPTATION <b>I</b>DEX(CAI)</h2>
 
                     <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="#Reference">[3]</a></sup>. The range of CAI is between 0 and 1, if its value
 
                     <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="#Reference">[3]</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
 
                         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
Line 928: Line 930:
 
                     <br>
 
                     <br>
 
                     <p><b>Example</b></p>
 
                     <p><b>Example</b></p>
 +
                    <h2 class="ProSubSubTitle"><b>E</b>XAMPLE</h2>
 
                     <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
 
                     <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>
 
                         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>

Revision as of 00:58, 22 October 2019

Tongji Software | Pathlab

PROJECT
Open navigation

MODEL

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[5] in every organism. So we build our enzyme score model by talking about with teachers.


KKKM 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

Fig4. pH & temperature distribution in E.coli & yeast environment



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


Score Formula

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



CONDON TERMED

In the section of codon optimization[4], 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

GC CTENT

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 IDEX(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

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

Fig5. Codon optimization result showed by CAI value (left) & GC content (right)



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.

[5] Padma V. Iyer, Laxmi Ananthanarayan, Enzyme stability and stabilization—Aqueous and non-aqueous environment, Process Biochemistry, Volume 43, Issue 10, 2008, Pages 1019-1032, ISSN 1359-5113, https://doi.org/10.1016/j.procbio.2008.06.004.