Difference between revisions of "Team:HebrewU/Software"

 
(18 intermediate revisions by the same user not shown)
Line 7: Line 7:
 
<!--- Own CSS --->
 
<!--- Own CSS --->
 
<link rel="stylesheet" href="https://2018.igem.org/Template:HebrewU/CSS?action=raw&ctype=text/css">
 
<link rel="stylesheet" href="https://2018.igem.org/Template:HebrewU/CSS?action=raw&ctype=text/css">
 
<!--- Jquery script - ****** remove when uploading to wiki ********** --->
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
 
  
 
<!--- Main Menu script --->
 
<!--- Main Menu script --->
Line 21: Line 18:
 
   <link rel="stylesheet" href="https://2018.igem.org/Template:HebrewU/strap?action=raw&ctype=text/css">
 
   <link rel="stylesheet" href="https://2018.igem.org/Template:HebrewU/strap?action=raw&ctype=text/css">
 
    
 
    
 +
  <!--- Open interview in new window --->
 +
<script type="text/javascript">
 +
            function openTab(th)
 +
            {
 +
                window.open(th.name,'_blank');
 +
            }
 +
</script>
 +
       
 +
       
 +
       
 
<style>
 
<style>
 
/* Disable I-GEM defult properties for blank page */
 
/* Disable I-GEM defult properties for blank page */
Line 83: Line 90:
 
     font-size: 14px;
 
     font-size: 14px;
 
     line-height: 1.42857143;
 
     line-height: 1.42857143;
}
 
 
a {
 
    color: hotpink;
 
 
}
 
}
  
Line 109: Line 112:
 
.w3-blue-grey, .w3-hover-blue-grey:hover, .w3-blue-gray, .w3-hover-blue-gray:hover {
 
.w3-blue-grey, .w3-hover-blue-grey:hover, .w3-blue-gray, .w3-hover-blue-gray:hover {
 
     color: #e4e4e4;
 
     color: #e4e4e4;
 +
}
 +
 +
a {
 +
color:yellow;
 +
 +
}
 +
 +
sup {
 +
color:yellow;
 +
 +
}
 +
 +
a:visited {
 +
color:white;
 +
 
}
 
}
 
</style>
 
</style>
Line 154: Line 172:
 
             <li><a href="https://2018.igem.org/Team:HebrewU/Description">Description</a></li>
 
             <li><a href="https://2018.igem.org/Team:HebrewU/Description">Description</a></li>
 
             <li><a href="https://2018.igem.org/Team:HebrewU/Model">Model</a></li>
 
             <li><a href="https://2018.igem.org/Team:HebrewU/Model">Model</a></li>
             <li><a href="https://2018.igem.org/Team:HebrewU/Results">Results</a></li>
+
             <li><a href="https://2018.igem.org/Team:HebrewU/Demonstrate">Results</a></li>
 
             <li><a href="https://2018.igem.org/Team:HebrewU/Parts">Parts</a></li>
 
             <li><a href="https://2018.igem.org/Team:HebrewU/Parts">Parts</a></li>
             <li><a href="https://2018.igem.org/Team:HebrewU/Software">Moolti</a></li>
+
             <li><a href="https://2018.igem.org/Team:HebrewU/Software">MOOLTi</a></li>
  
 
         </ul>         
 
         </ul>         
Line 208: Line 226:
 
             <a href="https://2018.igem.org/Team:HebrewU/Description"><button class="b_huji_small_subnav">Description</button></a>
 
             <a href="https://2018.igem.org/Team:HebrewU/Description"><button class="b_huji_small_subnav">Description</button></a>
 
             <a href="https://2018.igem.org/Team:HebrewU/Model"><button class="b_huji_small_subnav">Model</button></a>
 
             <a href="https://2018.igem.org/Team:HebrewU/Model"><button class="b_huji_small_subnav">Model</button></a>
             <a href="https://2018.igem.org/Team:HebrewU/Results"><button class="b_huji_small_subnav">Results</button></a>
+
             <a href="https://2018.igem.org/Team:HebrewU/Demonstrate"><button class="b_huji_small_subnav">Results</button></a>
 
             <a href="https://2018.igem.org/Team:HebrewU/Parts"><button class="b_huji_small_subnav">Parts</button></a>
 
             <a href="https://2018.igem.org/Team:HebrewU/Parts"><button class="b_huji_small_subnav">Parts</button></a>
             <a href="https://2018.igem.org/Team:HebrewU/Software"><button class="b_huji_small_subnav">Moolti</button></a>
+
             <a href="https://2018.igem.org/Team:HebrewU/Software"><button class="b_huji_small_subnav">MOOLTi</button></a>
 
         </div>
 
         </div>
  
Line 274: Line 292:
 
     }
 
     }
 
     </script>
 
     </script>
 +
   
 +
    <a onClick="topFunction()" id="myBtn_up" title="Go to top"><img src="https://static.igem.org/mediawiki/2018/1/1e/T--hebrewu--arrow_up.png" width="40px" /></a>
 +
 +
 +
<script>
 +
// When the user scrolls down 20px from the top of the document, show the button
 +
window.onscroll = function() {scrollFunction()};
 +
 +
function scrollFunction() {
 +
    if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {
 +
        document.getElementById("myBtn_up").style.display = "block";
 +
    } else {
 +
        document.getElementById("myBtn_up").style.display = "none";
 +
    }
 +
}
 +
 +
// When the user clicks on the button, scroll to the top of the document
 +
function topFunction() {
 +
    document.body.scrollTop = 0;
 +
    document.documentElement.scrollTop = 0;
 +
}
 +
</script>
 
<!------------ HP start ------------->
 
<!------------ HP start ------------->
  
Line 303: Line 343:
 
           <br /> <br /> <br />
 
           <br /> <br /> <br />
 
   </p>
 
   </p>
       <p class="w3-justify" style="padding-right:30px;padding-left:30px;color:white;"> Several tools exist that provide a solution for codon usage bias when optimizing a DNA sequence, such as IDT and COOL. These tools, however, do not allow users to perform optimization on more than one organism at a time. This means that iGEM teams and researchers that wish to transform the same gene into multiple organisms have to try using a singularly-optimized gene (not necessarily compatible with all of the organisms being tested) or spend time and resources experimenting with differently optimized versions of the same gene.
+
       <p class="w3-justify" style="padding-right:30px;padding-left:30px;color:white;"> Several tools exist that provide a solution for codon usage bias when optimizing a DNA sequence, such as IDT's<sup>1</sup> and COOL<sup>2</sup>. These tools, however, do not allow users to perform optimization on more than one organism at a time. This means that iGEM teams and researchers that wish to transform the same gene into multiple organisms have to try using a singularly-optimized gene (not necessarily compatible with all of the organisms being tested) or spend time and resources experimenting with differently optimized versions of the same gene.
 
   
 
   
 
  <br /> <br />  </p>
 
  <br /> <br />  </p>
Line 332: Line 372:
 
  <br />  <br />
 
  <br />  <br />
  
This means that the final DNA output might differ from iterations of the program with the same input, whilst still translating to the same protein. Similar to the optimizer which is offered by IDT [1] and OPTIMIZER [2], our tool chooses codons with a bias that parallels the natural bias observed in the selected organisms' genome. Using this approach, as opposed to confusing the most frequent codon with the “best” codon and using it exclusively, we overcome translational inefficiencies caused by an imbalanced spread of codons
+
This means that the final DNA output might differ from iterations of the program with the same input, whilst still translating to the same protein. Similar to the optimizer which is offered by IDT <sup>1</sup> and OPTIMIZER<sup>3</sup>, our tool chooses codons with a bias that parallels the natural bias observed in the selected organisms' genome. Using this approach, as opposed to confusing the most frequent codon with the “best” codon and using it exclusively, we overcome translational inefficiencies caused by an imbalanced spread of codons.
 
</p>  
 
</p>  
 
<br />  <br />   
 
<br />  <br />   
Line 338: Line 378:
  
 
<h2 class="w3-center"> Instructions </h2>
 
<h2 class="w3-center"> Instructions </h2>
 +
<div align="left" style="padding-left:30px;">
 +
<button type="button" style="backgrpund-color:#607d8b" class="w3-button" data-toggle="collapse" data-target="#web">Web (recommended)</button><br />
 +
  </div>
 +
  <div id="web" class="collapse w3-blue-gray">
 +
  <div style="float:right">
 +
<img src="https://static.igem.org/mediawiki/2018/5/5d/T--Hebrewu--MOOLTi_Web.jpeg" width="40%" /> <br /><br />
 +
</div>
 
<p class="w3-justify" style="padding-left:30px;padding-right:30px;color:white;">  
 
<p class="w3-justify" style="padding-left:30px;padding-right:30px;color:white;">  
1. Select your organism input format, there are two options:<br /> </p>
+
1. Enter  <a href="http://ec2-52-23-211-181.compute-1.amazonaws.com/">Moolti web page </a> and select your organism input format, there are two options:<br /> </p>
 
<p style="padding-left:50px;text-align:justify;padding-right:30px;">
 
<p style="padding-left:50px;text-align:justify;padding-right:30px;">
 
- Select an organism from our database, which includes a number of model organisms. <br />
 
- Select an organism from our database, which includes a number of model organisms. <br />
- Upload a CSV file containing your organisms' codon usage. We suggest downloading the files from our website or to use the STANDART option in the Codon Usage Database from <a href="https://www.kazusa.or.jp/codon/">Kazusa Database.</a></p>
+
- Upload a CSV file containing your organisms' codon usage. We suggest downloading the files from our website or to use the STANDART option in the Codon Usage Database from <a href="https://www.kazusa.or.jp/codon/">Kazusa Database.</a></p>
 +
<p class="w3-justify" style="padding-left:30px;padding-right:30px;color:white;">
 +
2. Enter your protein sequence by copy/ pasting.<br /></p>
 +
<p style="font-size:14px;text-align:left;padding-left:50px;">* Make sure there is no stop codon in the middle of the protein sequence.</p>  
 
<p class="w3-justify" style="padding-left:30px;padding-right:30px;color:white;">  
 
<p class="w3-justify" style="padding-left:30px;padding-right:30px;color:white;">  
2. Enter your protein sequence by copy/ pasting.<br />
 
 
 
3. Select restriction sites you would like to avoid.<br />
 
3. Select restriction sites you would like to avoid.<br />
  
 
4. If necessary, customize your minimal percentage for codon usage (one number for both organisms).<br />
 
4. If necessary, customize your minimal percentage for codon usage (one number for both organisms).<br />
5. Press "Optimize".  
+
5. Press "Optimize". <br /> <br />
      <p class="w3-justify" style="padding-left:30px;padding-right:30px;color:white;">  
+
</p>
 +
</div>
 +
 
 +
 
 +
<div align="left" style="padding-left:30px;">
 +
<button type="button" style="backgrpund-color:#607d8b" class="w3-button" data-toggle="collapse" data-target="#windows">python (windows) </button><br />
 +
  </div>
 +
  <div id="windows" class="collapse w3-blue-gray">
 +
<p class="w3-justify" style="padding-left:30px;color:white;">
 +
1. Add the following python libaries:
 +
<p style="padding-left:50px;text-align:justify;">
 +
-biopython (version 1.71 ) <br />
 +
-pandas (version 0.20.2) <br />
 +
-tkfilebrowser (version 2.2.5) <br />
 +
-numpy (version 1.15.2) <br />
 +
</p>
 +
<p class="w3-justify" style="padding-left:30px;color:white;">
 +
2. Download MOOLTi from the <a href="https://static.igem.org/mediawiki/2018/c/c4/T--Hebrewu--MOOLTi.zip
 +
"> i-GEM server </a> or from the <a href="https://github.com/leacotan/IGEM_Team_HUJI/tree/master/CodonOptimization"> GitHub</a> repository.<br />
 +
3. Double - Click on the file optimize.bat<br />
 +
4. Pick optimization method. <br />
 +
5. upload: <br />
 +
<p style="padding-left:50px;text-align:justify;">
 +
    - an empty file to save the result into.<br />
 +
    - a .fasta file containing the protein. <br />
 +
    - (optional) a file containing restriction enzymes names, or simply type them in (separated by comma).<br /></p>
 +
   
 +
        <p style="font-size:14px;text-align:left;padding-left:50px;">* Make sure there is no stop codon in the middle of the protein sequence.</p>
 +
  <p class="w3-justify" style="padding-left:30px;padding-right:70px;color:white;"> 
 +
6. click "Next".<br />
 +
7. upload  a .csv file containing a codon usage table (see database) for each organism.<br />
 +
8. (optional) add up to 4 organisms.<br />
 +
9. click "optimize" (the file with the output DNA was saved to the desired destination).<br /><br />
 +
</p>  <br /> <br />
 +
</div>
 +
 
 +
<div align="left" style="padding-left:30px;">
 +
<button type="button" style="backgrpund-color:#607d8b" class="w3-button" data-toggle="collapse" data-target="#cmd">python (cmd line) </button><br />
 +
  </div>
 +
  <div id="cmd" class="collapse w3-blue-gray">
 +
<p class="w3-justify" style="padding-left:30px;padding-right:30px;color:white;">
 +
1. Add the following python libaries:
 +
<p style="padding-left:50px;text-align:justify;padding-right:30px;">
 +
-biopython (version 1.71 ) <br />
 +
-pandas (version 0.20.2) <br />
 +
-numpy (version 1.15.2) <br />
 +
</p>
 +
<p class="w3-justify" style="padding-left:30px;color:white;">
 +
2. Download MOOLTi from the <a href="https://static.igem.org/mediawiki/2018/c/c4/T--Hebrewu--MOOLTi.zip
 +
"> i-GEM server </a> or from the <a href="https://github.com/leacotan/IGEM_Team_HUJI/tree/master/CodonOptimization"> GitHub</a> repository.<br />
 +
3. open command line.<br />
 +
4. Go to the downloaded folder location -> CodonOptimization\ (make sure Main.py is in the same folder)<br />
 +
5. run (in cmd line): <br />
 +
<p style="padding-left:50px;text-align:justify;padding-right:30px;">
 +
python3 Main.py  <protein sequence string> <threshold (defult is 0.05)> <organism 1 codon filename (csv file)>  <organism 2 codon table filename (csv file)>  <br /> </p>
 +
<p style="font-size:14px;text-align:left;padding-left:50px;">* Make sure there is no stop codon in the middle of the protein sequence.</p>
 +
<p class="w3-justify" style="padding-left:30px;padding-right:30px;color:white;"> 
 +
6. press enter. <br />
 +
7. write the names of the restriction enzymes to be avoided (notice: the input is case sensitive), if none press enter. <br />
 +
8. the output will be printed to the cmd line. <br />
 
</p>  
 
</p>  
 +
</p>
 +
</div>
 +
  
 
<br /><br />
 
<br /><br />
 
<h2 class="w3-center"> References </h2>
 
<h2 class="w3-center"> References </h2>
 
       <p class="w3-justify" style="padding-left:30px;padding-right:30px;color:white;">  
 
       <p class="w3-justify" style="padding-left:30px;padding-right:30px;color:white;">  
         1. <a href="https://jb.asm.org/content/jb/174/7/2131.full.pdf">"Codon optimization tool makes synthetic gene design easy"; Hans Packer et. al, IDT website (2016).</a> <br />         
+
         1. <a href="https://www.idtdna.com/pages/education/decoded/article/codon-optimization-tool-makes-synthetic-gene-design-easy">"Codon optimization tool makes synthetic gene design easy"; Hans Packer et. al, IDT website (2016).</a> <br />         
  2. <a href="https://jb.asm.org/content/jb/174/7/2131.full.pdf">"OPTIMIZER: a web server for optimizing the codon usage of DNA sequences"; Pere Puigbò et al Nucleic Acids Research, Volume 35, Issue suppl_2, Pages W126–W131 (2007).</a> <br />   
+
  2. <a href="https://academic.oup.com/nar/article/35/suppl_2/W126/2920747">"OPTIMIZER: a web server for optimizing the codon usage of DNA sequences"; Pere Puigbò et al Nucleic Acids Research, Volume 35, Issue suppl_2, Pages W126–W131 (2007).</a> <br />
 +
        3. <a href="http://cool.syncti.org/">COOL - Codon optimization on line, SynCTI, National University of Singapore (NUS); (2016).</a> <br />   
 
</p>                 
 
</p>                 
 
  <br />  <br />
 
  <br />  <br />
 
+
<p style="font-size:20px;">
For the full code, please visit our <a href="https://github.com/leacotan/IGEM_Team_HUJI/tree/master/CodonOptimization">GitHub</a>project.
+
For the full code, please visit MOOLTi <a href="https://github.com/leacotan/IGEM_Team_HUJI/tree/master/CodonOptimization">GitHub</a> project.
 
</p>  
 
</p>  
  

Latest revision as of 17:28, 12 December 2018

HebrewU HujiGEM 2018






MOOLTi allows for the codon optimization of a DNA sequence for multiple organisms, simultaneously. While it has a number of uses, it is especially beneficial for labs and iGEM teams working with plants. Genetically engineering plants is on the rise today; similarly, there is a growing trend amongst iGEM teams to work with plants in recent years. Also, as there is the option to upload custom codon usage tables, this tool can be used to optimize less standard organisms.





Several tools exist that provide a solution for codon usage bias when optimizing a DNA sequence, such as IDT's1 and COOL2. These tools, however, do not allow users to perform optimization on more than one organism at a time. This means that iGEM teams and researchers that wish to transform the same gene into multiple organisms have to try using a singularly-optimized gene (not necessarily compatible with all of the organisms being tested) or spend time and resources experimenting with differently optimized versions of the same gene.

Modifying organisms takes a lot of time and resources, which many iGEM teams cannot allow themselves to waste. As such, being able to test proteins and enzymes in microorganisms, or even in model plants, prior to final plant transformation is incredibly advantageous.

It was not so simple to develop, but MOOLTi makes this task as easy as optimizing for a single organism.

MOOLTi is programmed to optimize genes for their most efficient translation in multiple organisms based on recent studies in tRNA and codon usage. It is also filled with useful features such as custom limits on the lowest usage (bias) percentages you would like to allow, and ensuring there are no restriction sites so that genes can be Biobrick compatible.


Mechanism

MOOLTi analyzes and processes the input protein or DNA sequence, and codon usage tables, creating and updating internal data structures. After computing the average codon usage across organisms and ensuring minimum thresholds (at least 0.05% usage in each individual organism), MOOLTi creates a codon pool for each amino acid, which parallels the frequency in which they are used by the organisms. When the final DNA sequence is constructed, the codons are selected randomly from this pool creating a balanced mRNA molecule ready for translation. The resulting sequence is validated by internal mechanisms, checked for restriction sites, and then exported to the user.

This means that the final DNA output might differ from iterations of the program with the same input, whilst still translating to the same protein. Similar to the optimizer which is offered by IDT 1 and OPTIMIZER3, our tool chooses codons with a bias that parallels the natural bias observed in the selected organisms' genome. Using this approach, as opposed to confusing the most frequent codon with the “best” codon and using it exclusively, we overcome translational inefficiencies caused by an imbalanced spread of codons.



Instructions




1. Enter Moolti web page and select your organism input format, there are two options:

- Select an organism from our database, which includes a number of model organisms.
- Upload a CSV file containing your organisms' codon usage. We suggest downloading the files from our website or to use the STANDART option in the Codon Usage Database from Kazusa Database.

2. Enter your protein sequence by copy/ pasting.

* Make sure there is no stop codon in the middle of the protein sequence.

3. Select restriction sites you would like to avoid.
4. If necessary, customize your minimal percentage for codon usage (one number for both organisms).
5. Press "Optimize".


1. Add the following python libaries:

-biopython (version 1.71 )
-pandas (version 0.20.2)
-tkfilebrowser (version 2.2.5)
-numpy (version 1.15.2)

2. Download MOOLTi from the i-GEM server or from the GitHub repository.
3. Double - Click on the file optimize.bat
4. Pick optimization method.
5. upload:

- an empty file to save the result into.
- a .fasta file containing the protein.
- (optional) a file containing restriction enzymes names, or simply type them in (separated by comma).

* Make sure there is no stop codon in the middle of the protein sequence.

6. click "Next".
7. upload a .csv file containing a codon usage table (see database) for each organism.
8. (optional) add up to 4 organisms.
9. click "optimize" (the file with the output DNA was saved to the desired destination).




1. Add the following python libaries:

-biopython (version 1.71 )
-pandas (version 0.20.2)
-numpy (version 1.15.2)

2. Download MOOLTi from the i-GEM server or from the GitHub repository.
3. open command line.
4. Go to the downloaded folder location -> CodonOptimization\ (make sure Main.py is in the same folder)
5. run (in cmd line):

python3 Main.py

* Make sure there is no stop codon in the middle of the protein sequence.

6. press enter.
7. write the names of the restriction enzymes to be avoided (notice: the input is case sensitive), if none press enter.
8. the output will be printed to the cmd line.



References

1. "Codon optimization tool makes synthetic gene design easy"; Hans Packer et. al, IDT website (2016).
2. "OPTIMIZER: a web server for optimizing the codon usage of DNA sequences"; Pere Puigbò et al Nucleic Acids Research, Volume 35, Issue suppl_2, Pages W126–W131 (2007).
3. COOL - Codon optimization on line, SynCTI, National University of Singapore (NUS); (2016).



For the full code, please visit MOOLTi GitHub project.