Skip to content

sen-vikram/RNAfold-to-RNArtist

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RNAfold to RNArtist

RNAfold to RNArtist Logo
A powerful, modern GUI application for RNA/DNA structure prediction and visualization.
Combines the scientific accuracy of ViennaRNA with the artistic rendering of RNArtistCore.

Version Platform License

📋 Table of Contents


✨ Key Features

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.

🚀 Getting Started

Option A: Executable (Windows) [Recommended]

The easiest way to use the app. No Python installation required.

Requirements: Java 8+ (for RNArtistCore visualization)

  1. Go to the Releases section of this repository.
  2. Download RNAfold_to_RNArtist_Windows_v1.0.0.zip.
  3. Extract the zip file to a folder of your choice.
  4. Double-click RNAfold_to_RNArtist.exe.
  5. The app will launch instantly.

Option B: Run from Source (Developers)

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.txt

Launch:

cd RNAfold_App
python app.py

🎮 How to Use the App

  1. Input: Select a .fasta file (single or multiple sequences) or paste a sequence directly.
  2. 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.
  3. Run: Click the green RUN ENGINE button at the bottom.
  4. Results: Check the outputs/ folder for your generated structures and data.

💻 Command Line Interface (CLI)

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]

📊 Benchmarking

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 test

📂 Project Structure

RNAfold_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

🔧 Technical Details

  • Engine: Pure Python integration with the ViennaRNA Python interface (SWIG bindings).
  • Visualization: Generates .kts (Kotlin Script) files rendered by the embedded RNArtistCore.jar.
  • Packaging: Built with PyInstaller in "One-Directory" mode for fast startup.
  • Configuration: YAML-based config with portable path resolution.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

Copyright (c) 2025 Vikram Sen (@sen-vikram)


👏 Acknowledgements

  • Original Concept & Code: Vikram Sen
  • AI Assistance: Code architecture and GUI development assisted by AI coding agents.
  • Core Technologies:

About

A comprehensive GUI and CLI toolkit to predict RNA/DNA secondary structures using the ViennaRNA (RNAfold) engine and generate professional, artistic visualizations via RNArtistCore.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages