A powerful, modern GUI application for RNA/DNA structure prediction and visualization.
Combines the scientific accuracy of ViennaRNA with the artistic rendering of RNArtistCore.
- Key Features
- Getting Started
- How to Use the App
- Command Line Interface (CLI)
- Benchmarking
- Project Structure
- Technical Details
- License
- Acknowledgements
| Feature | Description |
|---|---|
| 🖥️ Modern GUI | Sleek, dark-mode interface built with CustomTkinter. |
| ⚡ Direct Engine | Runs the folding engine directly in Python memory (no fragile subprocess calls). |
| 🎨 Visualization | Real-time Colormap Previews (Sequential, Diverging, RNA Analysis). Output to SVG, PNG. |
| 🧪 Scientific Accuracy | Aligned with RNAfold Web Server defaults (T=37°C, dangles=2, noLP=1). |
| 📂 Project Management | Organize outputs by sequence name. Automatic export of probability data and Vienna files. |
| 🔄 Portable Config | Configuration files are resolved relative to engine location for maximum portability. |
The easiest way to use the app. No Python installation required.
Requirements: Java 8+ (for RNArtistCore visualization)
- Go to the Releases section of this repository.
- Download
RNAfold_to_RNArtist_Windows_v1.0.0.zip. - Extract the zip file to a folder of your choice.
- Double-click
RNAfold_to_RNArtist.exe. - The app will launch instantly.
If you want to modify the code or run it on Linux/macOS.
Prerequisites:
- Python 3.9+
- Java (JRE 8+) (Required for the RNArtist visualization core)
- ViennaRNA Python bindings installed
Install Dependencies:
pip install -r RNAfold_App/requirements.txtLaunch:
cd RNAfold_App
python app.py- Input: Select a
.fastafile (single or multiple sequences) or paste a sequence directly. - Configure:
- Constraints: Apply hard constraints using dot-bracket notation.
- Parameters: Adjust temperature, salt, or algorithm options (MFE vs Partition Function).
- Visuals: Pick a colormap (e.g.,
coolwarm,viridis,plasma) and see a live preview.
- Run: Click the green RUN ENGINE button at the bottom.
- Results: Check the
outputs/folder for your generated structures and data.
For power users who need to process hundreds of files in batches, we preserve the robust CLI version.
- Script:
Legacy_Versions/RNAfold_to_RNArtist_CLI.py - Documentation: Read CLI Docs
Usage:
python RNAfold_to_RNArtist_CLI.py <input_file_or_folder> [max_workers]The Dev_Tools/ folder contains benchmark scripts with real RNA sequences from Rfam:
| File | Sequences | Purpose |
|---|---|---|
benchmark_single.fasta |
1 | Quick single-sequence test |
benchmark_10seq.fasta |
10 | Multithread parallel test |
Run benchmarks:
cd Dev_Tools
python benchmark_profiling.py single # Quick test
python benchmark_profiling.py multi # Full parallel testRNAfold_to_RNArtist/
├── RNAfold_App/ # MAIN APPLICATION
│ ├── app.py # GUI Entry point
│ ├── RNAfold_to_RNArtist_engine.py # Core Logic
│ ├── app_gui/ # GUI components (tabs, widgets)
│ ├── bin/ # RNArtistCore JAR
│ ├── config.yaml # Configuration file
│ └── colormaps.yaml # Visual styling configs
├── Legacy_Versions/ # CLI TOOLS
│ └── RNAfold_to_RNArtist_CLI.py
├── Dev_Tools/ # DEVELOPMENT & BENCHMARKING
│ ├── benchmark_profiling.py
│ ├── benchmark_single.fasta
│ └── benchmark_10seq.fasta
├── Tests/ # QUALITY ASSURANCE
│ └── run_tests.py
└── docs/ # DOCUMENTATION
- Engine: Pure Python integration with the
ViennaRNAPython interface (SWIG bindings). - Visualization: Generates
.kts(Kotlin Script) files rendered by the embeddedRNArtistCore.jar. - Packaging: Built with PyInstaller in "One-Directory" mode for fast startup.
- Configuration: YAML-based config with portable path resolution.
This project is licensed under the MIT License - see the LICENSE file for details.
Copyright (c) 2025 Vikram Sen (@sen-vikram)
- Original Concept & Code: Vikram Sen
- AI Assistance: Code architecture and GUI development assisted by AI coding agents.
- Core Technologies:
- ViennaRNA Package (Folding Engine)
- RNArtistCore (Visualization)
- Matplotlib (Colormap support)
- CustomTkinter (UI Framework)