This Python package contains:
- A reinforcement learning based algorithm for RNA inverse folding (82/100 structures solved on the Eterna100 benchmark using various models and folding parameter sets).
- A graphical interface for RNA design and analysis that integrates RLIF with ViennaRNA package.
- A command line interface for generating solutions for RNA secondary structures.
GUI of RLIF.
All the dependencies can be installed by creating a new conda environment from the rlif.yml file and installing the rlif python package:
git clone https://github.com/andriusbern/rlif
cd rlif
conda env create -f rlif.yml
conda activate rlif
pip install -e .
-
Conda is required to install this package with the following dependencies:
- ViennaRNA==2.4.14
- Python=3.6
- mpi4py
-
The following Python packages are required:
- numpy==1.17.1
- tensorflow==1.13.1
- stable-baselines==2.7.0
- pyyaml
- gym
- forgi
- tqdm
- PySide2
- pyqtgraph
- matplotlib
To launch a Qt based interface:
python rlif/GUI.py
Target secondary RNA structures can be entered using the following methods:
- Sequence editing field (either nucleotide sequences or secondary structures in dot-bracket notation).
- Loading a FASTA file containing RNA sequences. Their secondary structures will be predicted using ViennaRNA and can then be used as targets for the algorithm.
- Loaded from a benchmark dataset (using the dataset selection and Load dataset button).
To launch a command line interface:
python rlif/CLI.py