FlexAID∆S (FlexAID-delta-S) is an entropy-aware molecular docking framework that combines the proven geometric search capabilities of FlexAID with rigorous Shannon configurational entropy and Voronoi hydration entropy calculations to produce ITC-calibrated thermodynamic binding scores.
Traditional docking scores are enthalpic — they estimate binding energy but ignore entropy. FlexAID∆S computes a true free-energy proxy (∆G ≈ ∆H − T∆S) by:
- Fast geometric search via Darwinian genetic algorithm with side-chain/ligand flexibility
- Enthalpic scoring using a compressed 2-term "NATURaL" potential (Lennard-Jones + Coulomb)
- Shannon configurational entropy from ensemble pose statistics
- Voronoi/alpha-shape hydration entropy from buried surface analysis
- Universal hardware acceleration (CUDA/Metal/AVX-512/OpenMP) auto-scaling from laptops to supercomputers
On ITC-validated datasets:
- r = 0.88 (Shannon-only) → r = 0.93 (full entropy model) vs. experimental ∆G
- 27% RMSD improvement over enthalpy-only scoring
- 92% pose-rescue rate where entropic correction recovers correct binding mode
- 3–50× speedup depending on hardware (GPU > SIMD > OpenMP > scalar)
# Required
sudo apt install cmake build-essential # Linux
brew install cmake # macOS
# Optional (recommended)
sudo apt install libeigen3-dev # Eigen for vectorization
pip install processligand-py # Ligand preparation tool
# GPU acceleration (optional)
sudo apt install nvidia-cuda-toolkit # CUDA (NVIDIA)
# Metal already included on macOSgit clone https://github.com/lmorency/FlexAIDdS.git
cd FlexAIDdS
mkdir build && cd build
# Standard build (auto-detects hardware)
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build . --target FlexAID -j $(nproc)
# Explicit GPU/SIMD configuration
cmake .. -DCMAKE_BUILD_TYPE=Release \
-DFLEXAIDS_USE_CUDA=ON \
-DFLEXAIDS_USE_AVX512=ON \
-DFLEXAIDS_HAS_EIGEN=ON
# Apple Silicon (Metal + NEON)
cmake .. -DCMAKE_BUILD_TYPE=Release \
-DFLEXAIDS_USE_METAL=ON \
-DFLEXAIDS_HAS_EIGEN=ONBinary will be in build/FlexAID.
# Install ProcessLigand
pip install processligand-py
# Convert ligand (use atom_index=90000 convention)
processligand your_ligand.mol2 --atom_index 90000 --output ligand.inp
# Receptor should be in .inp.pdb format (FlexAID-specific)Minimal config.txt:
PDBNAM /path/to/receptor.inp.pdb
INPLIG /path/to/ligand.inp
RNGOPT LOCCLF /path/to/binding_site_sph.pdb
METOPT GA
# Ligand flexibility (required minimum)
OPTIMZ 9999 - -1
OPTIMZ 9999 - 0
# Add OPTIMZ 9999 - N for each rotatable bond./FlexAID config.txt ga_params.inp
# Hardware auto-detection will report:
# [HW] Detected: CUDA sm_86 (8 GB) + 32 OpenMP threads + AVX-512
# [HW] Using GPU acceleration for fitness evaluationOutput:
ResultFile.txt– Best poses with CF/Shannon/Voronoi scoresthermodynamics.txt– Entropy decomposition and free energybinding_modes.txt– Density-clustered modes
┌─────────────────────────────────────────────────┐
│ Genetic Algorithm (GA) │
│ Population evaluation dispatcher │
└──────────────────┬──────────────────────────────┘
↓
┌─────────────────────────────────────────────────┐
│ Hardware Detection & Dispatch │
│ • CUDA capability (sm_XX) │
│ • Metal (Apple Silicon) │
│ • AVX-512 (Xeon/EPYC/Sapphire Rapids) │
│ • OpenMP thread count │
│ • NUMA topology │
└──────────────────┬──────────────────────────────┘
↓
┌────────┴─────────┐
↓ ↓
GPU Path CPU Path
↓ ↓
┌────────────────┐ ┌───────────────┐
│ CUDA kernel │ │ AVX-512 SIMD │
│ • Grid LUT │ │ • 8/16-wide │
│ • LJ+Coulomb │ │ • FMA units │
│ • WAL clash │ │ • Prefetch │
│ • SAS contrib │ │ │
└────────┬───────┘ └───────┬───────┘
│ │
┌────────────────┐ ┌───────────────┐
│ Metal MSL │ │ OpenMP │
│ • Threadgroup │ │ • Dynamic │
│ • CAS atomic │ │ sched │
│ • Persistent │ │ • NUMA pins │
└────────┬───────┘ └───────┬───────┘
│ │
└─────────┬─────────┘
↓
Unified fitness array
(CF + Shannon + Voronoi)
| Hardware | Speedup vs Scalar | Typical Use Case |
|---|---|---|
| CUDA RTX 4090 | 50× | Massive virtual screening (>10k ligands) |
| Metal M3 Max | 12× | macOS laptop docking |
| AVX-512 (Sapphire Rapids) | 8× | HPC clusters without GPUs |
| AVX-512 (Xeon Platinum) | 6× | Older server CPUs |
| OpenMP 32-thread | 20× | Multi-core workstations |
| Scalar (fallback) | 1× | Legacy/embedded systems |
- Zero-overhead abstraction – dispatch once per GA generation
- Persistent contexts – GPU buffers created once, reused
- Automatic fallback – CUDA → Metal → AVX-512 → OpenMP → scalar
- Lock-free parallelism – thread-private state, atomic SAS
- NUMA-aware – pin threads to NUMA nodes on multi-socket
E_NATURaL = Σ [ εᵢⱼ·(rᵢⱼ⁻¹² - 2rᵢⱼ⁻⁶) + (qᵢ·qⱼ)/(4πε₀·rᵢⱼ) ]
- LJ 12-6: van der Waals (ε optimized on PDBbind)
- Coulomb: distance-dependent dielectric
- 3D grids: analytic potentials, GPU/SIMD friendly
S_conf = -k_B·T·Σ pᵢ·ln(pᵢ)
where:
pᵢ = exp[-(Eᵢ - E_max)/(k_B·T)] / Z
Z = Σ exp[-(Eᵢ - E_max)/(k_B·T)]
- Numerically stable: log-sum-exp with E_max reference
- Physical: Shannon entropy of NATURaL microstates
- High entropy → many binding modes (flexible)
- Low entropy → unique mode (lock-and-key)
ΔS_hydration ≈ k_ordered · A_buried
- Voronoi cells at protein-ligand interface
- Physical: ordered water displacement from hydrophobic pockets
- ~3 kcal/mol for CNS receptors
ΔG ≈ ⟨E_NATURaL⟩ - S_conf - S_hydration
└─ enthalpy ─┘ └──── entropy ────┘
- NATURaL alone: r = 0.78–0.82
- + Shannon: r = 0.88
- Shannon-only: r = 0.88, RMSE = 1.8 kcal/mol
- Full entropy: r = 0.93, RMSE = 1.4 kcal/mol
- 27% RMSD improvement
- 92% pose-rescue rate
- +3.02 kcal/mol average entropic stabilization
| System | Time | Speedup |
|---|---|---|
| RTX 4090 | 2.3 min | 50× |
| Metal M3 Max | 9.8 min | 12× |
| AVX-512 (2× Xeon Platinum) | 14.5 min | 8× |
| OpenMP 32-thread | 5.8 min | 20× |
| Scalar (single-core) | 116 min | 1× |
| Feature | FlexAID∆S | AutoDock Vina | Glide | rDock |
|---|---|---|---|---|
| Entropy scoring | ✓ Shannon + Voronoi | ✗ | ✗ | ✗ |
| ITC correlation | r = 0.93 | r ≈ 0.65 | r ≈ 0.70 | r ≈ 0.60 |
| Receptor flexibility | Side-chain rotamers | Rigid | Limited | Limited |
| GPU acceleration | CUDA/Metal | ✗ | ✓ (proprietary) | ✗ |
| SIMD (AVX-512) | ✓ | ✗ | ✗ | ✗ |
| Open source | Apache 2.0 | Apache 2.0 | ✗ | LGPL |
| Clustering | Density-based | RMSD | RMSD | RMSD |
-
FlexAID core: Gaudreault & Najmanovich (2015). J. Chem. Inf. Model. 55(7):1323-36. DOI: 10.1021/acs.jcim.5b00078
-
NRGsuite plugin: Gaudreault, Morency & Najmanovich (2015). Bioinformatics 31(23):3856-58. DOI: 10.1093/bioinformatics/btv458
-
Shannon entropy (in prep): Morency et al. (2026). "Information-Theoretic Entropy-Aware Molecular Docking." J. Chem. Theory Comput. (submitted)
-
Thermodynamic decomposition (in prep): Morency et al. (2026). "Entropy Decomposition in Molecular Recognition." J. Chem. Inf. Model. (submitted)
Apache License 2.0 – Free for commercial use, modification, distribution.
See LICENSE for full terms.
Issues: https://github.com/lmorency/FlexAIDdS/issues
NRGlab: https://github.com/NRGlab | http://biophys.umontreal.ca/nrg/
Lead Developer: Louis-Philippe Morency | Université de Montréal
FlexAID∆S: Because Entropy Matters.
Where information theory meets thermodynamics, one Shannon bit at a time.