EasyDock Documentation

GitHub Repo Stars Forks

Welcome to EasyDock documentation! EasyDock is a fully automatic pipeline for molecular docking that provides a comprehensive solution for drug discovery workflows.

Overview

EasyDock automates the entire docking process from ligand preparation to result analysis, supporting multiple docking programs and providing organized result storage. EasyDock does not prepare protein structures, which should be prepared for each docking program according to their requirements.

Key Features

  • Multiple Docking Programs: Support for Vina, Gnina/Smina, QVina, Vina-GPU and their derivatives
  • Server-Based Docking: Containerized docking programs (CarsiDock, SurfDock, Vina-GPU) via a persistent server protocol
  • Generic Docking: Run any external docking binary or Python script via a YAML config file, without code changes
  • Automated Preparation: Molecule validation, salt removal, and stereoisomer enumeration
  • Flexible Protonation: Multiple methods including MolGpKa, Uni-pKa, Chemaxon, and pkasolver
  • Container Support: Run docking and protonation tools through Apptainer/Singularity or Docker with automatic GPU detection
  • Distributed Computing: Scale across multiple servers using Dask
  • Database Storage: All results organized in SQLite databases
  • Pose Quality Assessment: PoseBusters integration (easydock_bust) for physics-based validation of docked poses
  • PLIF Analysis: Protein-ligand interaction fingerprints for detailed analysis
  • Resumable Calculations: Interrupted runs can be continued seamlessly

Quick Start

# Create environment
conda env create -f env.yml -n easydock
# or use mamba (should be faster) 
mamba env create -f env.yml -n easydock

# Run docking
easydock -i input.smi -o output.db --program vina --config config.yml --protonation molgpka -c 4 --sdf

Getting Help

Documentation Structure

For Developers