#bioinformatics #rna #secondary-structure

bin+lib consalifold

Consensus Secondary Structure Predictor Engaging Structural Alignment-based Error Correction

15 releases

Uses old Rust 2015

0.1.14 Nov 23, 2022
0.1.12 Apr 23, 2022
0.1.11 Mar 16, 2022
0.1.7 Oct 25, 2021
0.1.0 Jul 13, 2020

#716 in Network programming

39 downloads per month

MIT license

3.5K SLoC

Python 3K SLoC // 0.0% comments Rust 773 SLoC

Consensus Secondary Structure Predictor Engaging Structural Alignment-based Error Correction


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:

$ consalifold # Its available command options will be displayed.

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.py

Docker Playground

Replaying computational experiments in academic papers is the first but troublesome step to understand developed computational methods. I provide an Ubuntu-based computational environment implemented on Docker as a playground to try out ConsAlifold:

$ git clone https://github.com/heartsh/consprob && cd consprob
$ docker build -t heartsh/consprob .

You can dive into the Docker image "heartsh/consprob" built by the above commands, using Zsh:

$ docker run -it heartsh/consprob zsh

Method Digest

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.


~205K SLoC