There are quite a lot of different software available for biologists for prediction of RNA secondary or tertiary structure. Here, I won’t discuss different algorithmic approaches and when to use them but I will check which approaches are available easily for Python users to include in their software (of course in specific needs only one software would be suitable and different – e.g. shell – approach would be required to use it automatically). I also won’t discuss software for protein structure folding because it is a whole new subject.
- Vienna Package (http://www.tbi.univie.ac.at/RNA/#self_packages) – I guess that this is most popular package used in Python for RNA folding. Information from the site: “RNA secondary structure prediction through energy minimization is the most used function in the package. We provide three kinds of dynamic programming algorithms for structure prediction: the minimum free energy algorithm of (Zuker & Stiegler 1981) which yields a single optimal structure, the partition function algorithm of (McCaskill 1990) which calculates base pair probabilities in the thermodynamic ensemble, and the suboptimal folding algorithm of (Wuchty et.al 1999) which generates all suboptimal structures within a given energy range of the optimal energy. For secondary structure comparison, the package contains several measures of distance (dissimilarities) using either string alignment or tree-editing (Shapiro & Zhang 1990). Finally, we provide an algorithm to design sequences with a predefined structure (inverse folding).”
- Multifold (https://pypi.python.org/pypi/multifold) – According to the authors:”MultifFold is a Python based tool package for RNA footprinting data analysis.
- It accepts RNA footprinting data generated from SHAPE-Seq, PARS and DMS-Seq technologies.
- It can fold multiple secondary structures for each transcript based on user provideed constraints.
- It could quantify the abundance of each structure centroid using the RNA footprinting data.
- It provides a series of commands for users to customize every procedure.
- It could handle RNA footprinting data generated from gene isoforms or overlapped transcripts.”
- Forgi (www.tbi.univie.ac.at/~pkerp/forgi) – it is not for folding exactly but for manipulating folded structures and for this usage it is an excellent tool
- Barnacle (https://sourceforge.net/projects/barnacle-rna/) – I think it’s not supported any more.
- Frnakenstein (http://www.stats.ox.ac.uk/research/genome/software/frnakenstein) – actually uses Vienna Package
There are also other tools written in Python but not implemented with Python interface. Just to name one:
- modeRNA (http://genesilico.pl/moderna/)
Also many short scripts are available at github and private websites but I would be careful with them:
If I left something out, please include it in the comment 🙂