This repository contains the code to reproduce the experimental results in the paper "Base-pair Ambiguity and the Kinetics of RNA Folding".
- Clone this repository
git clone https://github.com/StannisZhou/rna_statistics.git
- Set up the virtual environment
cd rna_statistics
conda env create -f environment.yml
source activate rna_statistics
Use
streamlit run main.py
to reproduce all the results using cached results in the intermediate folder. This would open up a browser session and interactively generate all the supplementary results.
A pre-generated report containing all the results is also available at report/index.html.
To facilitate the exploration of the results, we included cached results in the intermediate folder. To regenerate all the results from scratch, a few additional external dependicies are needed:
- Use the standalone implementation of Knotted to Nested to remove pseudoknots from the comparative secondary structures available under
data. A copy of the pseudoknot-free comparative secondary structures (generated using the IR option) is available underdata_without_pseudoknots. Note that you need to make simple modifications to the bpseq parser in the standalone implementation of Knotted to Nested so that it works with the data available underdata, and use the code under python 2.7. - Set up the RNA Secondary Structure Analyser, available at the RNA STRAND database website. You might need to change line 42 of
interval.cpp, and properly set X11 related options inMakefile(e.g. properly setX11_INCLUDEand change X11 related options inLFLAGS) in order to successfully compile the analyser. The code assumes the analyser is available in the RNAAnalyser folder under you home directory. If it's placed in a different place, please change line 14 ofdata.pyaccordingly. - Install the Vienna RNA package. Make sure
RNAfoldandRNAPKplexare available at the commandline.
After setting up these external dependicies and generate the data_without_pseudoknots folder, you can remove the intermediate folder and use
python run_experiments.py
to regenerate the cached results in intermediate.