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:

  • Ronny Lorenz avatar

    Ronny Lorenz

    • 🔬 Research
    • 🚧 Maintenance
    • 💻 Code: ViennaRNA 2.0, (most of) circular RNA support, G-quadruplex support, constraints framework, structure probing data support (commits: 4675)
    • 🤔 Ideas, Planning, & Feedback
    • 🐛 Bug reports
    • ⚠️ Tests
    • 👀 Reviewed Pull Requests
    • 💬 Answering Questions
    • 📦 Packaging/porting to new platform
    • 🧑‍🏫 Mentoring
  • Ivo L. Hofacker avatar

    Ivo L. Hofacker

    • 🔬 Research
    • 💻 Code: Most of the implementations up to version 1.8.5 (commits: 694)
    • 🤔 Ideas, Planning, & Feedback
    • 💬 Answering Questions
    • 🧑‍🏫 Mentoring
    • 🚇 Infrastructure (Hosting, Build-Tools, etc)
  • Dominik Luntzer avatar

    Dominik Luntzer

    • 🔬 Research
    • 💻 Code: structure probing data support, perturbation fold (commits: 131)
  • Hua-Ting Yao avatar

    Hua-Ting Yao

    • 🔬 Research
    • 💻 Code: Salt concentration dependency, structure probing data support (commits: 40)
    • 🤔 Ideas, Planning, & Feedback
    • 🐛 Bug reports
    • ⚠️ Tests
    • 💬 Answering Questions
  • Gregor Entzian avatar

    Gregor Entzian

    • 🔬 Research
    • 💻 Code: RNA landscape neighborhood and moves (commits: 30)
  • Mario Köstl avatar

    Mario Köstl

    • ⚠️ Tests
    • 💻 Code: worked on SWIG interface and related unit testing (commits: 25)
  • Stefan Badelt avatar

    Stefan Badelt

    • 🔬 Research
    • 💻 Code: cofold evaluation, RNAdesign.pl, cofold findpath extensions (commits: 17)
    • 🐛 Bug reports
    • 🤔 Ideas, Planning, & Feedback
  • Stephan Bernhart avatar

    Stephan Bernhart

    • 🔬 Research
    • 💻 Code: RNAcofold, RNAplfold, RNAalifold, unpaired probabilities, and so much more (commits: 14)
    • 🤔 Ideas, Planning, & Feedback
    • 🧑‍🏫 Mentoring
  • fncnt avatar

    fncnt

    • 💻 Code: (commits: 14)
  • Daniel Wiegreffe avatar

    Daniel Wiegreffe

    • 🔬 Research
    • 💻 Code: RNAturtle and RNApuzzler secondary structure layouts (commits: 13)
  • Martin Raden avatar

    Martin Raden

    • 🐛 Bug reports
    • 💻 Code: (commits: 10)
  • Juraj Michalik avatar

    Juraj Michalik

    • 🔬 Research
    • 💻 Code: non-redundant Boltzmann sampling (commits: 7)
  • walter avatar

    walter

    • 💻 Code: (commits: 6)
  • sl0wl1 avatar

    sl0wl1

    • 💻 Code: (commits: 5)
  • Christoph Flamm avatar

    Christoph Flamm

    • 🔬 Research
    • 💻 Code: findpath (commits: 4)
    • 🤔 Ideas, Planning, & Feedback
    • 🧑‍🏫 Mentoring
  • Domen Vaupotič avatar

    Domen Vaupotič

    • 💻 Code: (commits: 4)
  • Felix Kuehnl avatar

    Felix Kuehnl

    • 💻 Code: (commits: 4)
  • Michael T. Wolfinger avatar

    Michael T. Wolfinger

    • 🔬 Research
    • 💻 Code: (commits: 3)
    • 🐛 Bug reports
    • 📣 Promotion
  • Thomas Spicher avatar

    Thomas Spicher

    • 🔬 Research
    • 🔣 Data
    • 🐛 Bug reports
    • 🤔 Ideas, Planning, & Feedback
    • 💻 Code: (commits: 3)
  • Theo Boury avatar

    Theo Boury

    • 🔬 Research
    • 💻 Code: LinearBP inverse folding seed (commits: 3)
    • 🤔 Ideas, Planning, & Feedback
  • Marco Matthies avatar

    Marco Matthies

    • 💻 Code: (commits: 3)
  • Ulrike Mückstein avatar

    Ulrike Mückstein

    • 🔬 Research
    • 💻 Code: RNAup (commits: 2)
  • Sebastian Will avatar

    Sebastian Will

    • 🔬 Research
    • 💻 Code: (commits: 2)
    • 🐛 Bug reports
    • 🤔 Ideas, Planning, & Feedback
  • Wolfgang Beyer avatar

    Wolfgang Beyer

    • 🔬 Research
    • 💻 Code: first version of RNApkplex (commits: 2)
  • Ansa89 avatar

    Ansa89

    • 💻 Code: (commits: 2)
  • Maxim Koltsov avatar

    Maxim Koltsov

    • 💻 Code: (commits: 2)
  • Yahya Al-Shamali avatar

    Yahya Al-Shamali

    • 💻 Code: (commits: 2)
  • Hakim Tafer avatar

    Hakim Tafer

    • 🔬 Research
    • 💻 Code: RNAplex, RNAsnoop (commits: 1)
  • Stefan Hammer avatar

    Stefan Hammer

    • 🔬 Research
    • 💻 Code: Parts of SWIG interface and corresponding unit tests (commits: 1)
    • 🐛 Bug reports
    • ⚠️ Tests
    • 🤔 Ideas, Planning, & Feedback
  • Andrea Tanzer avatar

    Andrea Tanzer

    • 🐛 Bug reports
    • 💻 Code: (commits: 1)
  • Anmol Seth avatar

    Anmol Seth

    • 💻 Code: (commits: 1)
  • Bobby R. Bruce avatar

    Bobby R. Bruce

    • 💻 Code: (commits: 1)
  • Dominik Rabsch avatar

    Dominik Rabsch

    • 💻 Code: (commits: 1)
  • Michael Souza avatar

    Michael Souza

    • 💻 Code: (commits: 1)
  • Nick Booher avatar

    Nick Booher

    • 💻 Code: (commits: 1)
  • William B avatar

    William B

    • 💻 Code: (commits: 1)
  • joh16 avatar

    joh16

    • 💻 Code: (commits: 1)
  • Andreas Gruber avatar

    Andreas Gruber

    • 🔬 Research
    • 💻 Code: first approach on RNALfold Z-score filtering
  • Stefan Wuchty avatar

    Stefan Wuchty

    • 🔬 Research
    • 💻 Code: Suboptimal structures
  • Martin Fekete avatar

    Martin Fekete

    • 🔬 Research
    • 💻 Code: first attempts at alignment folding
  • Manfred Tacker avatar

    Manfred Tacker

    • 🔬 Research
    • 💻 Code: hacked constrained folding into MFE folding for the first time
  • Sebastian Bonhöffer avatar

    Sebastian Bonhöffer

    • 🔬 Research
    • 💻 Code: implementation of partition function folding served as a precursor to our part_func.c
  • Martijn Huynen avatar

    Martijn Huynen

    • 🐛 Bug reports
  • Bärbel Krakhofer avatar

    Bärbel Krakhofer

    • 🐛 Bug reports
  • Peter F. Stadler avatar

    Peter F. Stadler

    • 🔬 Research
    • 🤔 Ideas, Planning, & Feedback
    • 💬 Answering Questions
    • 🧑‍🏫 Mentoring
    • 🚇 Infrastructure (Hosting, Build-Tools, etc)