This project is written mainly in Rust, a systems programming language. You need to install Rust components, i.e., rustc (the Rust compiler), cargo (the Rust package manager), and the Rust standard library. Visit the Rust website to see more about Rust. You can install Rust components with the following one line:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
The above installation is done by Rustup, and Rustup enables to easily switch a compiler in use. As ConsAlifold's dependencies, you need to install ViennaRNA and LocARNA-P (if you wish to use instead of ConsProb). You can install ConsAlifold as follows:
# AVX, SSE, and MMX enabled for rustc
# Another example: RUSTFLAGS='--emit asm -C target-feature=+avx2 -C target-feature=+ssse3 -C target-feature=+mmx -C target-feature=+fma'
RUSTFLAGS='--emit asm -C target-feature=+avx -C target-feature=+ssse3 -C target-feature=+mmx' \
cargo install consalifold
Check if you have installed ConsAlifold properly as follows:
# Its available command options will be displayed.
consalifold
You can run ConsAlifold with a prepared test RNA alignment:
git clone https://github.com/heartsh/consalifold \
&& cd consalifold
cargo test --release
# The below command requires Gnuplot (http://www.gnuplot.info)
# Benchmark results will be found at "./target/criterion/report/index.html"
cargo bench
By the following Python script, you can reproduce the figures shown in the paper describing ConsAlifold's principle:
cd scripts
# Please install python packages required to this reproduction.
# Saved figures will appear at the "../assets/images" directory.
./run_all.sh
I offer my Docker-based playground for RNA software and its instruction to replay my computational experiments easily.
RNAalifold folds each RNA sequence alignment, minimizing the average free energy of a predicted consensus secondary structure. Based on posterior column base-pairing probabilities on RNA consensus secondary structures, PETfold and CentroidAlifold fold each RNA sequence alignment. PETfold and CentroidAlifold correct potential errors in each input sequence alignment utilizing posterior nucleotide base-pairing probabilities on RNA secondary structures. To achieve better alignment error correction than PETfold and CentroidAlifold, I developed ConsAlifold implemented in this repository. ConsAlifold folds each RNA sequence alignment correcting its potential errors with average probabilistic consistency.
Copyright (c) 2018 Heartsh
Licensed under the MIT license.