About the ViennaRNA Package#
The core of the ViennaRNA Package (Lorenz et al. [2011], Hofacker et al. [1994]) is formed by a collection of algorithms for the prediction and comparison of RNA secondary structures.
Physics based RNA secondary structure prediction is the main functionality in the package. We provide variants of three different kinds of dynamic programming algorithms for structure prediction, (i) the minimum free energy algorithm of Zuker and Stiegler [1981] which yields a single optimal structure, (ii) the partition function algorithm of McCaskill [1990] that allows for base pair probability computation or stochastic backtracking of structure samples, and (iii) 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 and Zhang [1990]. Finally, we provide an algorithm to design sequences with a predefined structure, i.e. inverse folding.
History#
Over the past decades since the ViennaRNA Package first saw the light of day as part of Ivo L. Hofackers PhD project, several authors contributed more and more algorithm implementations. In 2008, Ronny Lorenz took over the extensive task to harmonize and simplify the already existing implementations for the sake of easier feature addition. This eventually lead to version 2.0 of the ViennaRNA Package. Since then, he (re-)implemented a large portion of the currently existing library features, such as the new, generalized constraints framework, RNA folding grammar domain extensions, and the major part of the scripting language interface.
Contributors#
This is an open source project that has only been made possible with the help of many researchers and users that contributed code and documentation.
Here we want to thank everyone who spend time and effort to help thrive of the ViennaRNA Package through discussions, code contributions, testing or bug finding, in particular:
- 🔬 Research
- 🚧 Maintenance
- 💻 Code: ViennaRNA 2.0, (most of) circular RNA support, G-quadruplex support, constraints framework, structure probing data support (commits: 4672)
- 🤔 Ideas, Planning, & Feedback
- 🐛 Bug reports
- ⚠️ Tests
- 👀 Reviewed Pull Requests
- 💬 Answering Questions
- 📦 Packaging/porting to new platform
- 🧑🏫 Mentoring
- 🔬 Research
- 💻 Code: RNAcofold, RNAplfold, RNAalifold, unpaired probabilities, and so much more (commits: 14)
- 🤔 Ideas, Planning, & Feedback
- 🧑🏫 Mentoring
- 🔬 Research
- 💻 Code: LinearBP inverse folding seed (commits: 3)
- 🤔 Ideas, Planning, & Feedback
Ulrike Mückstein
- 🔬 Research
- 💻 Code: RNAup (commits: 2)
- 🔬 Research
- 💻 Code: Parts of SWIG interface and corresponding unit tests (commits: 1)
- 🐛 Bug reports
- ⚠️ Tests
- 🤔 Ideas, Planning, & Feedback
Andreas Gruber
- 🔬 Research
- 💻 Code: first approach on RNALfold Z-score filtering
Stefan Wuchty
- 🔬 Research
- 💻 Code: Suboptimal structures
Martin Fekete
- 🔬 Research
- 💻 Code: first attempts at alignment folding
Manfred Tacker
- 🔬 Research
- 💻 Code: hacked constrained folding into MFE folding for the first time
Sebastian Bonhöffer
- 🔬 Research
- 💻 Code: implementation of partition function folding served as a precursor to our part_func.c
Martijn Huynen
- 🐛 Bug reports
Bärbel Krakhofer
- 🐛 Bug reports
Peter F. Stadler
- 🔬 Research
- 🤔 Ideas, Planning, & Feedback
- 💬 Answering Questions
- 🧑🏫 Mentoring
- 🚇 Infrastructure (Hosting, Build-Tools, etc)