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.


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.


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 is in the same folder)
5. run (in cmd line):


* 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.


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.