Skip to content

iCodon customizes gene expression based on the codon composition

License

MIT, MIT licenses found

Licenses found

MIT
LICENSE
MIT
LICENSE.md
Notifications You must be signed in to change notification settings

santiago1234/iCodon

Repository files navigation

Santiago G. Medina-Muñoz, Michay Diez, Luciana A Castellano, Gabriel da Silva Pescador, Qiushuang Wu, & Ariel Bazzini

iCodon: designing “ideal” coding (iCodon) sequences for customized expression level

DOI Travis build status Codecov test coverage

iCodon predicts gene expression based on the codon composition and designs new variants based on synonymous mutations.

Messenger RNA (mRNA) stability substantially impacts steady-state gene expression levels in a cell. mRNA stability is strongly affected by codon composition in a translation-dependent manner across species, through a mechanism termed codon optimality. We have developed iCodon, an algorithm for customizing mRNA expression through the introduction of synonymous codon substitutions into the coding sequence. iCodon is optimized for four vertebrate transcriptomes: mouse, human, frog, and fish. Users can predict the mRNA stability of any coding sequence based on its codon composition and subsequently generate more stable (optimized) or unstable (deoptimized) variants encoding for the same protein. Further, we show that codon optimality predictions correlate with both mRNA stability using a massive reporter library and expression levels using fluorescent reporters and analysis of endogenous gene expression in zebrafish embryos and/or human cells. Therefore, iCodon will benefit basic biological research, as well as a wide range of applications for biotechnology and biomedicine.

Check the iCodon paper.

⏬ Installation

You can install the released version of iCodon from GitHub with:

# install.packages("devtools")
devtools::install_github("santiago1234/iCodon")

📖 Example

This is a basic example which shows you how to optimize the gene expression of the following gene:

library(iCodon)
cat(test_seq)
#> ATGTGGAGCGGCGGAGCTGAGCAACAACACCCTAAAACCGACAAATCTCACCGATGCAATGGCGTCGACAGCTCAAGAAGAAAGAACAGATCGCAGCGGTGGCGATATGAAGTCAAGAAAACTGGATGA
sequence <- test_seq
result <- optimizer(sequence, specie = "mouse", n_iterations = 10, make_more_optimal = T)
#> optimizing sequence (more optimal)
#> starting genetic algorithm ...
#> 2.3.4.5.6.7.8.9.10.11.

Visualizing the results

visualize_evolution(result)

To see what else can be accomplished with this package see the help with:

browseVignettes("iCodon")