Skip to content

cosconatilab/StabLyzeGraph

Repository files navigation

StabLyzeGraph

StablyzeGraph Logo

StabLyzeGraph: High-Throughput Screening of Combinatorial Mutations Using Graph Neural Networks

Python PyTorch PyQt6 License

About

StabLyzeGraph is a comprehensive computational framework for accelerated protein stability engineering, tackling the challenges of vast mutational space and complex protein interactions using graph neural networks (GNNs). StabLyzeGraph integrates diverse protein features (physicochemical properties, evolutionary conservation, and 3D structure coordinates) to predict the impact of mutations, identify beneficial combinations, and streamline the discovery of highly stable proteins. It provides two main modes:

  • Benchmarking Mode: In benchmarking mode, most robust and more relevent GNN model is fined tuned by hyperparameter optimization.
  • Screening Mode: In screening mode, first a library of mutants generated then screened using optimized/trained model.

Features

  • Interactive GUI: Modern PyQt6-based interface with real-time progress tracking
  • PyTorch Integration: Leverages PyTorch and PyTorch Geometric for deep learning
  • Comprehensive Analysis: Detailed metrics, plots, and result visualization
  • Cross-Platform: Works on Linux systems with full desktop integration and Windows 64 bit

Quick Install

Prerequisites

  • Linux operating system (Ubuntu, CentOS, Fedora, etc.) or Windows 64 bit
  • Internet connection for downloading dependencies
  • At least 5GB of free disk space

One-Command Installation for Linux

# Download and extract the package, then run the installer
python install_stablyzegraph_gui.py

Alternative: Clone from Repository

# Clone the repository
git clone https://github.com/cosconatilab/StabLyzeGraph.git
cd StabLyzeGraph

# Run the installer
python install_stablyzegraph_gui.py

Installation Details

The installer will automatically:

  1. Setup Python Environment

    • Detect or install Miniconda/Anaconda
    • Create isolated Conda environment (stablyzegraph_env)
    • Install PyTorch with CUDA support
  2. Install Dependencies

    • PyTorch & PyTorch Geometric
    • PyQt6 for GUI
    • Clustalo
    • BioPython for sequence analysis
    • Scientific Python stack (NumPy, Pandas, Matplotlib, etc.)
  3. System Integration

    • Create stablyzegraph terminal command
    • Add desktop entry and application menu integration
    • Generate desktop shortcut
    • Setup uninstaller

Installation Options

During installation, you can choose:

  • System-wide installation (/opt/stablyzegraph) - requires sudo
  • User installation (~/.local/share/stablyzegraph) - recommended

Usage

Launch Methods

After installation, you can launch StablyzeGraph using any of these methods:

# Terminal command (available anywhere)
stablyzegraph

# Direct launcher script
~/.local/share/stablyzegraph/stablyzegraph.sh

Or use the desktop shortcut/application menu entry.

Benchmarking Mode

  1. Input Files Required:

    • Active Sequences (CSV)
    • Inactive Sequences (CSV)
    • Wild Type (FASTA)
    • PDB Structure
    • Properties (CSV)
  2. Configure Parameters (Example):

    • Hidden Dimension: 128 (default)
    • Dropout Rate: 0.25 (default)
    • Learning Rate: 0.00001 (default)
    • Max Epochs: 1000 (default)
  3. Run Analysis:

    • Click "Run Benchmarking"
    • Monitor progress in real-time
    • View results: metrics, plots

Screening Mode

  1. Input Files Required:

    • Same as Benchmarking mode
    • Optional: Pre-trained model file
  2. Configure Parameters:

    • Number of Mutations: 2 (default)
    • Generation Method: combinatorial (default)
  3. Generate Mutants:

    • Click "Run Screening"
    • View ranked mutants table
    • Export results

System Requirements

Minimum Requirements

  • OS: Linux (Ubuntu 18.04+, CentOS 7+, Fedora 30+) or Windows 64 bit
  • RAM: 4GB (16GB recommended)
  • Storage: 5GB free space

Required System Packages

# Ubuntu/Debian
sudo apt update && sudo apt install build-essential wget curl

# CentOS/RHEL
sudo yum groupinstall 'Development Tools' && sudo yum install wget curl

# Fedora
sudo dnf groupinstall 'Development Tools' && sudo dnf install wget curl

Uninstallation

To remove StablyzeGraph completely:

# Run the uninstaller (path depends on installation choice)
~/.local/share/stablyzegraph/uninstall_stablyzegraph.sh

# Or for system-wide installation
/opt/stablyzegraph/uninstall_stablyzegraph.sh

To also remove the Conda environment:

conda env remove -n stablyzegraph

Troubleshooting

Common Issues

Installation fails with "conda not found":

# The installer will automatically install Miniconda
# If issues persist, manually install conda first

GUI doesn't start:

# Check if PyQt6 is properly installed
conda activate stablyzegraph_env
python -c "import PyQt6; print('PyQt6 OK')"

GUI is not opening properly:

# Try to export QT platform manually and then try
export QT_QPA_PLATFORM=xcb

Getting Help

  1. Check the installation logs for detailed error messages
  2. Ensure all system requirements are met
  3. Try running the installer with verbose output:
    python install_stablyzegraph_gui.py

πŸ“ Project Structure

stablyzegraph-installer/
β”œβ”€β”€ install_stablyzegraph_gui.py    # Main installer script
β”œβ”€β”€ README.md                       # This file
└── Tutorial/                       # Example input files and results for default comparison
    └── Benchmarking/               # Input and Result data files for benhcmarking analysis
    └── Screening/                  # Input and Result data files for benhcmarking analysis
└── src/                            # Source files
    β”œβ”€β”€ main.py                     # Main application
    β”œβ”€β”€ Benchmarking.py             # Benchmarking module
    β”œβ”€β”€ Screening.py                # Screening module
    β”œβ”€β”€ requirements.txt            # Python dependencies
    β”œβ”€β”€ logo.png                    # Application logo
    β”œβ”€β”€ icon.png                    # Application desktop icon
└── StabLyzeGraph_Windows_x64_Installer/    # Installation folder for Windows
    β”œβ”€β”€ StabLyzeGraph_Installer.exe         # Installer for Windows version
└── python_scripts/
    β”œβ”€β”€ Mutation_list_to_sequence_conversion.py # Module for the conversion of a mutation list into protein mutant sequences
    β”œβ”€β”€ Data_augmentation.py             # Module for augmenting negative data class (if required)
    β”œβ”€β”€ Similarity_check_BLOSUM.py       # Module to run BLOSUM similarity check
└── All_Benchmarking/               # Benchmarking Results
    β”œβ”€β”€ Data_N                     # All Datasets Directories
└── All_Datasets/                   # Curated Datasets
    β”œβ”€β”€ Data_N                     # All Datasets Directories

License

This project is licensed under the GNU Affero General Public License v3.0 License - see the LICENSE file for details.


About

StabLyzeGraph: High-Throughput Screening of Combinatorial Mutations Using Graph Neural Networks

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages