CARNA: Constraint-based Alignment of RNA Ensembles


CARNA aligns RNA based on all interactions in their ensembles; consequently, it supports many non-standard alignment cases like pseudoknots and multiple stable structures. For this high flexibility, it performs a constraint search to find the optimal alignment of the RNAs. The tool is available for download and local installation; it is furthermore accessible online via the CARNA web server.


Current release [source]: carna-1.3.3.tar.gz

CARNA is available as source; it is libre software under GPL 3.0. This release compiles with Gecode 5.0.0 and LocARNA 1.9.1.

Installation on any GNU/Linux distribution and Mac OS X gets as simple as

conda install -c bioconda carna

after setting up Conda. As immediate benefit, Conda takes care of the dependencies! Read more at Bioconda.

Available older releases:


CARNA can be installed from source via the GNU autotools standard mechanism ./configure; make; make install. It requires the Vienna RNA package, LocARNA, and Gecode. Please follow the detailed instructions in INSTALL file of the distribution (in particular, for support of Gecode's gist).


For pairwise alignment, CARNA is called directly:

Given two fasta files for the two input sequences

> seqA 
... [Your first RNA sequence] ... 

> seqB 
... [Your second RNA sequence] ...
one calls CARNA by
carna fileA.fa fileB.fa
Alternatively to fasta input files, where CARNA automatically predicts ensembles using McCaskill's algorithm (from Vienna RNA), one can pass dot plot files (Vienna format or LocARNA's PP format) and clustalw-like alignment files w/ optional constraint annotations.

Multiple alignment with CARNA is supported by re-using the progressive alignment implementation in mlocarna (- the multiple alignment tool of the LocARNA package). For this purpose, one runs mlocarna using CARNA as the pairwise aligner (in place of locarna).

Given a single fasta file of the input sequences

> seqA 
... [Your first RNA sequence] ... 
> seqB 
... [Your second RNA sequence] ...
one calls mlocarna using CARNA as its pairwise aligner by
mlocarna --pw-aligner $(which carna) file.fa
In multiple alignment, CARNA-specific options can be specified by the command line option --pw-aligner-options of mlocarna (mlocarna --man). Per default, mlocarna predicts ensembles from the given sequences using RNAfold. This can be modified or changed in various ways (cf. the available documentation for mlocarna).


The original research paper about the tool is

Alessandro Dal Palu, Mathias Möhl, and Sebastian Will. A propagator for Maximum Weight String Alignment with Arbitrary Pairwise Dependencies. In Proceedings of the 16th International Conference on Principles and Practice of Constraint Programming (CP-2010), page 167–175, 2010. (doi:10.1007/978-3-642-15396-9_16)

The CARNA web server is presented here

Dragos A. Sorescu, Mathias Möhl, Martin Mann, Rolf Backofen, and Sebastian Will. CARNA - alignment of RNA structure ensembles. Nucleic Acids Res, 40(W1):W49–W53, 2012. (doi:10.1093/nar/gks491)