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_INCLUDE
and 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.py
accordingly. - Install the Vienna RNA package. Make sure
RNAfold
andRNAPKplex
are 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
.