Skip to content

Vitruves/Druse

Repository files navigation

Druse

Druse

GPU-Accelerated Molecular Docking for macOS

macOS Apple Silicon Metal Version License: Apache 2.0

A native macOS application for structure-based drug discovery.
Built from the ground up for Apple Silicon with Metal compute shaders.




Download

Download Druse 0.1.30-beta

Requirements — macOS 26.0 or later, Apple Silicon (M1 or newer). Click the button above to download the .dmg, open it, and drag Druse into Applications.

Note — Druse is currently distributed unsigned. On first launch, macOS Gatekeeper will block the app. Right-click (or Control-click) Druse.app and select Open, then click Open in the confirmation dialog. Alternatively, run xattr -cr /path/to/Druse.app in Terminal.

Build from Source

Prerequisites

  • macOS 26.0+, Apple Silicon (M1 or newer)
  • Xcode 26.0+ (with Command Line Tools)
  • Homebrew
  • XcodeGen 2.35+

1. Install dependencies

brew install rdkit boost eigen nanoflann tbb
brew install xcodegen

Optional (for GFN2-xTB quantum refinement):

brew install xtb

2. Clone the repository

git clone https://github.com/Vitruves/Druse.git
cd Druse

3. Build the C++ core

cd CppCore
mkdir -p build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j$(sysctl -n hw.ncpu)
cd ../..

OpenMM is fetched and built automatically by CMake. The first run can take several minutes.

4. Generate the Xcode project and build the app

xcodegen generate
xcodebuild -project Druse.xcodeproj -scheme Druse -configuration Release build

The built Druse.app lands in Xcode's DerivedData directory; the build log prints the exact path. To launch it directly:

open "$(xcodebuild -project Druse.xcodeproj -scheme Druse -configuration Release -showBuildSettings 2>/dev/null | awk -F' = ' '/ BUILT_PRODUCTS_DIR /{print $2}')/Druse.app"

Running the benchmark

The CASF-2016 benchmark suite requires the PDBbind refined-set + CASF-2016 core set data (not redistributed with the repo) and a manifest generated from them.

  1. Obtain the data. Place the extracted archives under Benchmark/data/ so the layout is:
Benchmark/data/
├── CASF-2016/         # CASF-2016 core set (CoreSet.dat + complexes)
└── refined-set/       # PDBbind refined-set (one folder per PDB ID)
  1. Install the Python dependencies (Python 3.10+ recommended):
pip install -r Benchmark/requirements.txt
  1. Build the manifest from the data above:
python Benchmark/prepare.py
# writes Benchmark/manifests/casf_manifest.json
  1. Run a benchmark. Each invocation drives xcodebuild test against the DruseTests target — a GUI window will open during the run.
# Quick smoke test: redock 10 complexes with Vina scoring
python Benchmark/run_benchmark.py --casf --scoring vina --preset standard --quick 10

# Compare all scoring functions on the full core set
python Benchmark/run_benchmark.py --casf --scoring vina,drusina,druseaf,pignet2

# All options
python Benchmark/run_benchmark.py --help

Results land in Benchmark/results/ as timestamped JSON files. If the run reports PASSED in seconds with no per-complex output, the manifest is missing — re-run step 3.


Druse guided demo walkthrough




Overview

Most docking software was designed for Linux clusters and command-line workflows. Druse takes a different approach — a fully native macOS application that puts the entire docking pipeline in a single window, accelerated by Metal on the GPU you already have.

Native & Fast Built in Swift and Metal. No Python runtimes, no Docker, no X11. Just a .app that launches instantly.
GPU Everything 20+ Metal compute kernels — from genetic algorithm search to neural network scoring to surface rendering. All on your M-series chip.
Unified Memory Apple Silicon's shared CPU/GPU memory means zero-copy data transfer between the docking engine, ML models, and 3D renderer.
Interactive Real-time 3D visualization with impostor rendering, Connolly surfaces, and ribbon diagrams — all at retina resolution.



The Pipeline

Druse covers the full structure-based drug discovery workflow in a single application.

Load & Prepare

Protein structure loaded in Druse

  • Fetch from RCSB — Enter a PDB ID and Druse downloads the structure directly
  • Format support — PDB, mmCIF, SDF (V2000/V3000), MOL2, SMILES
  • Protein preparation — Automated pipeline: water removal, alternate conformer selection, missing atom reconstruction, polar hydrogen addition, H-bond network optimization (Asn/Gln flips, His tautomers), sidechain packing (FASPR with Dunbrack rotamers), and energy minimization
  • Protonation — pH-dependent protonation with table lookup or optional GFN2-xTB quantum pKa prediction
  • Partial charges — Four methods: EEM (GPU-accelerated), QEq, Gasteiger, and RDKit template matching

Detect Binding Sites

  • Alpha-sphere probing — Geometric pocket detection with DBSCAN clustering and 26-direction buriedness scoring
  • ML-enhanced detection — Optional neural network pocket predictor combined with geometric scoring
  • Ligand-guided — Auto-center from a co-crystallized ligand, or define a custom box manually
  • Pocket metrics — Volume (ų), buriedness score, druggability rating, and resident residue identification

Dock

Docking configuration with ligand in binding pocket

  • Genetic Algorithm — Population-based search with adaptive mutation, crossover, and iterated local search — all on GPU
  • Fragment-Based Docking — Hierarchical fragment growth with anchor placement and beam search pruning
  • Parallel Tempering — Replica exchange Monte Carlo for enhanced sampling of flexible ligands
  • Diffusion-Guided Docking — Reverse diffusion process with DruseAF attention gradient guidance
  • Flexible Docking — Simultaneous optimization of ligand pose and sidechain rotamers (3–6 residues)
  • Pharmacophore Constraints — H-bond, hydrophobic, aromatic, salt bridge, and metal coordination constraints with configurable strength
  • Auto-Tuning — Automatically adapts search parameters to protein size, pocket shape, and ligand flexibility
  • Analytical Gradients — SIMD-cooperative local search, faster than numerical finite differences

Score

Four scoring functions, each with different strengths:

Scoring Function Type Description
Vina Empirical Gaussian + repulsion + hydrophobic + H-bond + torsion penalty
Drusina Extended empirical Vina baseline plus electrostatics, salt bridges, π-π stacking, π-cation, halogen bonds, metal coordination, CH-π, amide-π, chalcogen bonds, and torsion strain
DruseAF v4 Neural network SE(3)-equivariant pairwise geometric network for pKd prediction
PIGNet2 Physics-informed GNN Graph neural network with physics-based interaction constraints

Analyze

Docking results with electrostatic surface

  • Pose clustering — GPU-accelerated pairwise RMSD with hierarchical clustering and consensus pose extraction
  • Energy decomposition — Per-term breakdown across all scoring components
  • Interaction detection — 10+ interaction types with color-coded 3D visualization and 2D interaction diagrams

2D interaction diagram

  • Explicit atom rescoring — Top clusters re-scored against explicit receptor atoms with basin hopping refinement
  • Strain filtering — MMFF94 torsion strain penalty to flag unrealistic conformations
  • GFN2-xTB refinement — Optional semi-empirical QM post-docking optimization with D4 dispersion and ALPB solvation



Virtual Screening

Batch-dock up to 100,000 molecules with shared grid reuse and parallel 3D generation.

  • Pre-filtering — Rotatable bond cutoff, rapid pre-scoring for fast rejection
  • ADMET filtering — Lipinski Rule of Five, Veber rules
  • Multiple scoring functions — Vina, Drusina, DruseAF v4, or PIGNet2 as the primary scorer
  • Ranked export — CSV with full metrics and SDF with posed geometries



Lead Optimization

Lead optimization with analog generation and property trade-offs

Generate and evaluate analogs directly inside Druse.

  • Analog generation — 18+ curated substitution rules: halogen swaps, alkyl extensions, heteroatom substitutions, aromatic replacements, functional group interchanges, ring size modifications
  • Property sliders — Dial in polarity, rigidity, lipophilicity, and size to bias generation toward desired property space
  • Mini-docking — Sub-second per-analog docking with RMSD tracking against the parent compound
  • ADMET gating — Real-time Lipinski and Veber checks on every analog
  • Trade-off analysis — Binding affinity vs. ADMET property landscape with Pareto frontier identification



Visualization

Real-time 3D molecular visualization

Real-time Metal-rendered 3D molecular graphics, triple-buffered for smooth interaction.

  • Rendering modes — Ball & stick, space filling, wireframe, ribbon (helix/sheet/coil)
  • Surfaces — Connolly (solvent-accessible) and Gaussian blob isosurfaces with electrostatic potential, hydrophobicity, or pharmacophore coloring
  • Interactions — Color-coded lines for hydrogen bonds, salt bridges, π-stacking, halogen bonds, metal coordination, and more
  • GPU picking — Click any atom or residue directly in the 3D view for instant selection and inspection
  • Ghost ligands — Translucent overlay of docking poses for comparison
  • Z-slab clipping — Slice through the structure to focus on the binding site interior



Ligand Library

Ligand library with imported compounds

A built-in molecular database for organizing your compounds.

  • Multi-format import — SDF, MOL2, PDB files, co-crystallized ligands from loaded structures, or direct SMILES input
  • Chemical form enumeration — Tautomers, protomers, and cross-enumeration with Boltzmann population weighting
  • Conformer generation — RDKit 3D embedding with energy-ranked conformer selection
  • Batch preparation — Hydrogen addition, charge calculation, and minimization across the library
  • Search & filter — By name, SMILES, molecular weight, rotatable bonds, H-bond donors/acceptors



Guided Demo

New to molecular docking? Druse includes a fully interactive guided walkthrough that docks Nafamostat into Trypsin (PDB: 3PTB) — from protein fetch to scored poses — with step-by-step narration. Just click Demo on the welcome screen.




Metal Under the Hood

Metal compute pipeline

Druse runs 20+ specialized Metal compute kernels on Apple Silicon:

  • Genetic algorithm evolution and selection
  • Analytical gradient local search (SIMD-cooperative)
  • Grid map generation (steric, hydrophobic, H-bond, affinity)
  • Neural network inference (DruseAF v4, PIGNet2)
  • EEM partial charge calculation
  • Connolly surface generation
  • Pairwise RMSD computation
  • Fragment growth and diffusion denoising
  • Flexible sidechain scoring
  • Impostor sphere/cylinder rendering with depth-correct post-processing

Half-precision grid storage, shared memory tiling, and on-demand rendering keep memory usage low and battery life long.




Druse — Molecular docking, native on your Mac.




License

Druse is released under the Apache License 2.0. See NOTICE for third-party attributions and academic citation details.

Copyright © 2026 Johan H.G. Natter

About

GPU-accelerated molecular docking studio for macOS

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors