pyFuRNAce is an open-source Python package and web-based design engine for creating complex RNA nanostructures using the co-transcriptional RNA origami approach. It streamlines the entire design pipeline — from structural motif assembly to sequence generation and primer design — into an intuitive, user-friendly platform.
WebApp: pyfurnace.de
GitHub: Biophysical-Engineering-Group/pyFuRNAce
PyPI: pyfurnace
Script API examples: Code Examples
Documentation: Read the Docs
- 🧩 Motif-based assembly: Build RNA structures using a rich, expandable library of motifs including stems, dovetails, kissing loops, aptamers, and ribozymes.
- 🎨 GUI & Real-time 3D Visualization: Interactive blueprint editor and real-time 3D rendering via Streamlit and oxView.
- 🔄 Integrated Workflow: Design, generate, convert, and prepare your RNA origami in one unified interface.
- 🧬 Sequence Generation & Optimization: Built-in support for sequence folding (Revolvr + ViennaRNA).
- 🧪 Primer & Template Design: Includes tools for DNA conversion, promoter addition, and primer calculations.
- 💻 Python Scripting API: Automate complex designs or build at scale using a programmable interface.
- Python 3.10 or later
- Operating System: Linux, macOS, or Windows
- dependencies are listed in
requirements.txt; with stable versions recommended instable_requirements.txt
Typical installation time: 5 minutes
Note: pyFuRNAce requires Python 3.10 or later, and the local installation always includes the GUI via Streamlit.
Install or upgrade the latest stable version of pyFuRNAce from PyPI using pip (and OAT from GitHub):
pip install --upgrade pyfurnaceInstall the latest development version of pyFuRNAce (and OAT) directly from the GitHub repository:
pip install "git+https://github.com/Biophysical-Engineering-Group/pyFuRNAce.git"Note: The pyFuRNAce installation does not include the oxDNA analysis tools (OAT).
The OAT package is used to convert 3D structures from/to PDB files and write oxDNA force files.
To install the OAT package, you can use the following command (the git command is required, you can install it via anaconda with conda install git):
pip install "git+https://github.com/lorenzo-rovigatti/oxDNA.git#subdirectory=analysis"To run sequence generation, a Perl interpreter is required by the Revolvr script from ROAD. It is usually installed by default on most systems. If not, you can install it via Anaconda with conda install bioconda-legacy::perl.
To run the web application locally after installation, use the following command:
pyfurnaceOr alternatively python -m pyfurnace.
This will lunch the GUI in your default web browser. You can also use the hosted version at pyfurnace.de. The WebApp is built using Streamlit and can be run locally or on a server. You can access the webapp directly at pyfurnace.streamlit.app.
- Design: Create and edit RNA structure blueprints. Visualize assembled structures in 3D. Define custom motifs via GUI or scripting.
- Generate: use inverse folding (Revolvr) to produce RNA sequences matching the target structure. Evaluate folding energies and structural ensemble diversity.
- Convert: Translate RNA sequences to DNA templates. Add transcriptional promoters (e.g., T7). Analyze sequence properties (e.g., GC content, dimers).
- Prepare: Design PCR primers with melting temperature calculations. Generate input files for molecular dynamics simulations with oxRNA.
import pyfurnace as pf
line1 = [pf.TetraLoop(),
pf.Stem(7),
pf.Dovetail(-2, up_cross=False),
pf.Stem(6),
pf.KissingDimer(),
pf.Stem(6),
pf.Dovetail(-2, up_cross=False),
pf.Stem(7),
pf.TetraLoop(True),
]
line2 = [pf.TetraLoop(),
pf.Stem(7),
pf.Dovetail(-2, down_cross=False),
pf.Stem(10),
pf.start_end_stem(),
pf.Stem(10),
pf.Dovetail(-2, down_cross=False),
pf.Stem(7),
pf.TetraLoop(True),
]
origami = pf.Origami(line1, line2, aling='center')
print(origami)
print(origami.structure)
print(origami.sequence) ╭───────╮
╭CGNNNKNNN──SS──NKNNNNAA┼─NNNNNN╯╭─ANNKNNN──SS──NNNKNNNUU╮
│ ┊┊┊┊┊┊┊ ┊┊ ┊┊┊┊┊┊ │ ┊┊┊┊┊┊ │ ┊┊┊┊┊┊ ┊┊ ┊┊┊┊┊┊┊ │
╰UUNNNKNNN──SS╮╭NKNNNNA─╯╭NNNNNN─┼AANNKNNN──SS╮╭NNNKNNNGC╯
││ ╰───────╯ ││
╭───╯│ ╭────╯│
│╭───╯ │╭────╯
↑↓ ↑↓
╭CGNKNKNNN╯╰SS──NKNNNKNNNN─3 5─NNNKNNNKNN╯╰SS──NKNNKNNUU╮
│ ┊┊┊┊┊┊┊ ┊┊ ┊┊┊┊┊┊┊┊┊┊ ┊┊┊┊┊┊┊┊┊┊ ┊┊ ┊┊┊┊┊┊┊ │
╰UUNKNKNNN──SS──NKNNNKNNNN─────NNNKNNNKNN──SS──NKNNKNNGC╯
((((((((((((((((((..[[[[[[.))))))))(((((((....)))))))(((((((((....)))))))))))))))))))(((((((((((((((((((....)))))))(((((((((....)))))))))((((((..]]]]]].))))))))))))))))))
NNNKNNNKNNSSNNNKNNAANNNNNNANNKNNNSSNNNKNNNUUCGNNNKNNNSSNKNNKNNUUCGNNKNNKNSSNNKNNNKNNNNNNNKNNNKNSSNNNKNKNUUCGNKNKNNNSSNNNKNNNUUCGNNNKNNNSSNKNNNNAANNNNNNANNNNKNSSNKNNNKNNNN
Explore tutorials and example notebooks in the examples directory.
Code is licensed under the GNU General Public License v3.0 (GPL-3.0)
The pyFuRNAce logo is original artwork created by Luca Monari.
Luca Monari retains full copyright ownership of the logo.
Permission is granted to reproduce the logo in academic, scientific, or educational materials that reference or use pyFuRNAce, including publications, presentations, and documentation (whether commercial or non-commercial).
Any other use of the logo requires prior written permission from the copyright holder.
If you use pyFuRNAce in your research, please cite:
Monari, L. et al. PyFuRNAce: an integrated design engine for RNA origami. Nat Commun 16, 10815 (2025). https://doi.org/10.1038/s41467-025-66290-x.
This work was supported by the ERC Starting Grant ENSYNC (No. 101076997) and Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under CRC 392 and CRC 1638. This work was supported by a Research Grant from HFSP (Ref.-No: RGP003/2023, DOI: https://doi.org/10.52044/HFSP.RGP0032023.pc.gr.168589). The authors thank the Max Planck Society for access to computational resources and the Alfried Krupp von Bohlen und Halbach Foundation. E.P. was supported through state funds approved by the State Parliament of Baden-Württemberg for the Innovation Campus Health + Life Science Alliance Heidelberg Mannheim. We thank Cody Geary for his feedback on the user interface design. We thank Dominic Kempf for his feedback on software development and testing.

