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.
pyFuRNAce design API coverage:
WebApp: pyfurnace.de
GitHub: Biophysical-Engineering-Group/pyFuRNAce
PyPI: pyfurnace
Script API examples: Code Examples
Documentation: Read the Docs
🚀 Features
- 🧩 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.
System requirements
- Python 3.10 or later
- Operating System: Linux, macOS, or Windows
- dependencies are listed in
requirements.txt; with stable versions recommended instable_requirements.txt
📦 Installation
Typical installation time: 5 minutes
Pyfurnace
Note: pyFuRNAce requires Python 3.10 or later, and the local installation always includes the GUI via Streamlit.
Install from PyPI
Install or upgrade the latest stable version of pyFuRNAce from PyPI using pip (and OAT from GitHub):
pip install --upgrade pyfurnace
Install from GitHub
Install the latest development version of pyFuRNAce (and OAT) directly from the GitHub repository:
pip install "git+https://github.com/Biophysical-Engineering-Group/pyFuRNAce.git"
Extra Dependencies
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.
🖥️ Running the Web Application
To run the web application locally after installation, use the following command:
pyfurnace
Or 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.
🎛 Modules
- 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.
🧑💻 Using the Python API
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)
-> Output:
╭───────╮
╭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
📚 Examples
Explore tutorials and example notebooks in the examples directory.
📜 License
Code is licensed under the GNU General Public License v3.0 (GPL-3.0)
📜 Logo Copyright & Permission
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.
🧠 Citation
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.
🙏 Acknowledgements
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.
Metadata
Release files for pyfurnace 1.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pyfurnace-1.3.0.tar.gz | 388.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyfurnace-1.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 808.2 kB
Release files / pyfurnace-1.3.0.tar.gz
| Download URL | pyfurnace-1.3.0.tar.gz |
|---|---|
| Size | 388.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5312867cf96914d49786277d277df1f175b9c0309cdb7b48a3bce175f6fdd52e
|
|
BLAKE2b-256 checksum How to use checksums |
75d9fdac1656c6bcfb4968d483a9e33bbedc8f8b54b34a81b3c9d63fa473b10a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 25, 2026.
Transparency logRelease files / pyfurnace-1.3.0-py3-none-any.whl
| Download URL | pyfurnace-1.3.0-py3-none-any.whl |
|---|---|
| Size | 419.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
11563f64f07c7d7095ec7db0cfa2365ea855b09e4593b98bf7588abba4d21db1
|
|
BLAKE2b-256 checksum How to use checksums |
6eaeb1d10efdf08d95257e3eef8b1769ea25c1bb09ec2f6f049f9d90971a6479
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 25, 2026.
Transparency log