UTRGAN: Learning to Generate 5' UTR Sequences for Optimized Translation Efficiency and Gene Expression
UTRGAN is a is a deep learning based model for novel 5' UTR generation and optimziation. We use the WGAN-GP architecture for the generative model, and the Xpresso, FramePool, and MTtrans models for optimizing the TPM expression, Mean Ribosome Load (MRL), and Translation Efficiency (TE), respectively.
Diagram of the generative model (WGAN) and the optimization procedure
Sina Barazandeh, Furkan Ozden, Ahmet Hincer, Urartu Ozgur Safak Seker, A. Ercument Cicek
[firstauthorname].[firstauthorsurname]@bilkent.edu.tr
[correspondingauthorsurname]@cs.bilkent.edu.tr
Warning: Please note that the UTRGAN model is completely free for academic usage. However it is licenced for commercial usage. Please first refer to the License section for more info.
- UTRGAN is easy to use and does not require installation. The scripts can be used if the requirements are installed.
For easy requirement handling, you can use utrgan.yml files to initialize conda environment with requirements installed:
$ conda env create --name utrgan -f utrgan.yml
$ conda activate utrgan
Note that the provided environment yml file is for Linux systems. For MacOS users, the corresponding versions of the packages might need to be changed.
- UTRGAN components are trained using GPUs and GPUs are used for the project. However, depending on the type of Tensorflow Tensorflow the model can run on both GPU and CPU. The run time on CPU is considerably longer compared to GPU.
Important notice: Please call the wgan.py script from the ./src/gan directory. The optimization scripts for gene expression and MRL/TE are in the ./src/exp_optimization and ./src/mrl_te_optimization directories, respectively. To analyze the generated seqeunces use the ./src/analysis/violin_dists.py script.
$ python ./src/gan/wgan.py
- The gpus that will be set as "CUDA_VISIBLE_DEVICES", cpu will be used as default
- The batch size used to train the model, the default value is 64
- The CSV file including the UTR samples. The default path used is './../../data/utrdb2.csv'.
- The learning rate of the Adam optimizer used to optimize the model parameters. The default value is 1e-5. If 4 is provided, the learning rate will be 1e-4.
$ python ./src/exp_optimization/single_gene.py
- The gpus that will be set as "CUDA_VISIBLE_DEVICES", cpu will be used as default
- The name of the txt file including the gene dna
- The file should be: /src/exp_optimization/genes/GENE_NAME.txt
- The learning rate of the Adam optimizer used to optimize the model parameters. The default value is 3e-5.
- The number of iterations the optimization is performed. The default value is 3,000 iterations.
- The upper limit for the GC content (percentage(e.g. 65)). Default: No limit
- The number of 5' UTR sequences generated and optimized. Default: 128.
$ python ./src/exp_optimization/multiple_genes.py
- The gpus that will be set as "CUDA_VISIBLE_DEVICES", cpu will be used as default
- The name of the txt file including the gene dna
- The file should be: /src/exp_optimization/genes/GENE_NAME.txt
- The learning rate of the Adam optimizer used to optimize the model parameters. The default value is 3e-5.
- The number of iterations the optimization is performed. The default value is 3,000 iterations.
- The number of Randomly selected genes. Default: 128.
- The number of 5' UTR optimized per DNA. Default: 128.
$ python ./src/exp_optimization/joint_opt.py
- The gpus that will be set as "CUDA_VISIBLE_DEVICES", cpu will be used as default
- The name of the txt file including the gene dna
- The file should be: /src/exp_optimization/genes/GENE_NAME.txt
- The number of iterations the optimization is performed. The default value is 1,000 iterations for both steps.
- The learning rate of the Adam optimizer used to optimize the model parameters. The default value is 3e-5.
- The number of 5' UTR optimized per DNA. Default: 128.
$ python ./src/mrl_te_optimization/optimize_variable_length.py
- The learning rate of the Adam optimizer used to optimize the model parameters. The default value is 3e-5.
- Either "te" or "mrl"
- The number of 5' UTR optimized. Default: 128.
Note: Much higher number of batch sizes (up to 8192) was used for statistical tests with different seeds
You should run the following scripts:
./src/mrl_te_optimization.py -task te
./src/mrl_te_optimization.py -task mrl
./src/exp_optimization/multiple_genes.py
./src/exp_optimization/single_gene.py -g [IFNG, TNF, TLR6, TP53]
./src/exp_optimization/joint_opt.py -g [IFNG, TNF, TLR6, TP53]
To reproduce plots:
./analysis/violin_plots.py
./analysis/plot_4x4.py
./analysis/opt_check.py
./analysis/mrl_te_opt.py
./src/exp_optimization/exp_joint.py
All the plots will be in: ./analysis/plots/
The p-values, confidence intervals and effect sizes will be printed in the terminal output of the "violin_plots.py" script
The average and maximum increase statistics will be printed for each boxplot generating script
Usage of UTRGAN is very simple. You need to install conda to install the specific environment and run the scripts.
-
This project uses conda package management software to create virtual environment and facilitate reproducability.
-
For Linux users:
-
Please take a look at the Anaconda repo archive page, and select an appropriate version that you'd like to install.
-
Replace this
Anaconda3-version.num-Linux-x86_64.sh
with your choice
$ wget -c https://repo.continuum.io/archive/Anaconda3-vers.num-Linux-x86_64.sh
$ bash Anaconda3-version.num-Linux-x86_64.sh
- It is important to set up the conda environment which includes the necessary dependencies.
- Please run the following lines to create and activate the environment:
$ conda env create --name utrgan -f utrgan.yml
$ conda activate utrgan
- CC BY-NC-SA 2.0
- Copyright 2023 © UTRGAN.
- For commercial usage, please contact.