Major Features
- **GPU Acceleration**: Added hardware acceleration support using PyTorch and CuPy backends for significantly faster scoring calculations
- **Hybrid CPU/GPU Processing**: Implemented smart workload balancing between CPU and GPU resources
- **Enhanced Search Algorithms**:
- Parallelized genetic algorithm implementation
- Improved Monte Carlo sampling with simulated annealing
- **Physics-Based Scoring**: Added MM-GBSA inspired scoring with:
- Improved electrostatics with distance-dependent dielectric
- Generalized Born implicit solvation model
- Better hydrophobic interaction modeling
- **Flexible Residues**: Support for flexible protein side chains during docking
- **Auto-Detection**: Automatic binding site detection using DBSCAN clustering
- **Validation Tools**: Built-in validation against reference structures with detailed RMSD analysis
Core Components
- **Scoring Functions**:
- Basic scoring (VDW, H-bonds, clashes)
- Enhanced scoring (electrostatics, desolvation, hydrophobic interactions)
- Physics-based scoring (MM-GBSA inspired)
- **Search Algorithms**:
- Random search
- Genetic algorithm with local optimization
- Monte Carlo sampling with simulated annealing
- **Hardware Optimization**:
- HybridDockingManager for workload distribution
- Parallel processing with worker pools
- GPU-accelerated scoring functions
- Adaptive hardware detection and configuration
Command-Line Interface
- Hardware acceleration options (GPU/CPU selection)
- Physics-based options (MMFF minimization, Monte Carlo sampling)
- Enhanced search options (population size, iterations, exhaustiveness)
- Molecule preparation options (hydrogen addition, pH adjustment)
- Validation options (RMSD calculation against reference)
Performance Improvements
- GPU-accelerated scoring functions (up to 10-50x speedup on compatible hardware)
- Parallelized search algorithms for multi-core CPUs
- Optimized electrostatics calculations with screening
- Memory-efficient parallel evaluation of poses
Technical Enhancements
- Hardware auto-detection for optimal configuration
- MMFF94 minimization for ligand preparation
- Performance benchmarking for GPU/CPU balance
- Improved error handling and fallbacks
Code Structure
- Modular architecture for easy extension
- Comprehensive docstrings and comments
- Separation of concerns (scoring, search, hardware management)
- Hardware abstraction layer for multiple backends
Dependencies
- Core functionality works without additional dependencies
- Enhanced features available with:
- PyTorch or CuPy for GPU acceleration
- RDKit for molecule preparation and MMFF minimization
- OpenBabel as alternative to RDKit
- scikit-learn for binding site detection
Bug Fixes
- Fixed issues with atomic clash detection
- Corrected implementation of hydrophobic interactions
- Improved handling of edge cases in SASA calculations
- Better robustness against numerical instabilities in energy calculations