One molecular docking workflow, four ways to run.
Anyone Can Dock makes protein-ligand docking accessible through a zero-install web app, a private local interface, an automation-friendly CLI, and a GPU-ready Google Colab notebook.
From structure preparation to validated docking results, without making molecular docking harder than it needs to be.
| Feature | 🌐 ACD Online | 🖥️ ACD Local | ⌨️ ACD CLI | 📓 Google Colab |
|---|---|---|---|---|
| Best for | Quick docking and teaching | Private, interactive research | Automation and large workflows | Workshops and GPU docking |
| Setup | Open a browser | Install on your computer | pip install anyonecandock |
Open the notebook |
| Single and batch docking | ✅ | ✅ | ✅ | ✅ |
| Co-Dock (ligands together) | ✅ | ✅ | ✅ | ✅ |
| Co-crystal redocking | ✅ | ✅ | ✅ | ✅ |
| Receptor-ensemble docking | — | — | ✅ | — |
| Docking engines | AutoDock Vina | AutoDock Vina | AutoDock Vina | Vina, VinaXB, GNINA, Vina-GPU |
| Results and interaction views | Interactive 3D and 2D | Interactive 3D and 2D | Exported structures, scores, and diagrams | Notebook 3D views and ProLIF analysis |
| Automatic Gemini interpretation | — | — | — | Optional |
| Where calculations run | Hosted server | Your computer | Your computer or server | Colab runtime |
| Start here | Open Online → | Local installation | pip install anyonecandock |
Open in Colab → |
Tip: Choose Online for the fastest start, Local for an interactive workflow on your computer, CLI for scripts, or Colab for its additional docking engines. Vina-GPU requires a compatible Colab GPU runtime.
Best for: beginners, teaching, demonstrations, and quick docking without installation.
- Runs directly in a web browser
- Interactive Basic Dock and Batch Dock modes
- Download structures from RCSB or upload PDB/mmCIF files
- Automatic, manual, residue-selection, and blind-docking box placement
- Meeko receptor preparation with Open Babel fallback
- Metal, heme, cofactor, water, and HETATM handling
- SMILES, PubChem name, SDF, MOL2, and PDB ligand input
- pH-aware ligand protonation with pKaNET
- AutoDock Vina docking and reproducible random seeds
- Co-crystal redocking and RMSD validation
- Interactive 3D receptor, binding-box, ligand, and pose visualization
- Pose Browser with individual pose export
- Download SDF or PDB poses with explicit hydrogens
- Preserve all docked poses in the original PDBQT output
- Interaction diagrams using ACD, RDKit, ProLIF, and PoseView
- Batch ranking, score tables, ProLIF interaction barcodes, and ZIP export
- RDKit physicochemical descriptors, drug-likeness rules, and structural alerts
- Optional ADMET-AI predictions
Best for: private research, full graphical functionality, and unrestricted local workflows.
Includes all major Online features, plus:
- Runs entirely on the user's own computer
- Local control of receptor, ligand, result, and temporary files
- Basic Dock and Batch Dock interfaces
- Validated ferric-heme and Compound-I preparation
- Automatic
HEME_FERRICversusCPD_Igeometry detection - Geometric ferryl oxygen and proximal cysteine identification
- Fe-O and Fe-S validation gates
- Ferryl oxygen hydrogen removal
- JSON-derived RESP charges for Fe, OXO, heme, and proximal cysteine
- Final PDBQT reread and charge validation before docking
- Fail-closed heme validation: docking starts only after required checks pass
- Receptor PDB, scores, individual poses, hydrogenated poses, diagrams, and complete result archives
- Optional local ADMET-AI analysis
- No hosted-server runtime or storage restrictions
sudo apt update
sudo apt install -y \
python3.11 \
python3.11-venv \
openbabel \
libcairo2-dev \
libpango1.0-dev \
libpangocairo-1.0-0
git clone https://github.com/nyelidl/anyone-docking-local.git
cd anyone-docking-local
python3.11 -m venv venv
source venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
streamlit run app.pybrew update
brew install python@3.11 open-babel cairo pango
git clone https://github.com/nyelidl/anyone-docking-local.git
cd anyone-docking-local
python3.11 -m venv venv
source venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
streamlit run app.pyApple Silicon (M1-M4): supported with the native
aarch64Vina binary.
Recommended: use WSL2 with Ubuntu and follow the Linux instructions above.
For native Windows:
- Install Open Babel and add it to
PATH. - Install Cairo/Pango, for example with
conda install -c conda-forge cairo pango. - Clone and run the app:
git clone https://github.com/nyelidl/anyone-docking-local.git
cd anyone-docking-local
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
streamlit run app.pyBest for: automation, reproducible research, scripting, servers, and large screening projects.
- Commands for docking, ligand batch docking, receptor-ensemble docking, receptor preparation, ligand preparation, redocking, and diagrams
- Accepts PDB IDs or local PDB/mmCIF structures
- Accepts SMILES, PubChem names, SDF, MOL2, and PDB ligands
- Automatic co-crystal, manual, selection-based, and blind-docking boxes
- No artificial docking-box size limit
- Preparation-only mode without starting Vina
- Prepared-receptor JSON export and reuse
- pH-aware, tautomer-aware ligand preparation using pKaNET
- Microstate selection and configurable tautomer limits
- Deterministic conformer and Vina random seeds
- AutoDock Vina exhaustiveness, pose count, and energy-range controls
- Batch-safe noninteractive operation
- Protein-ensemble docking from receptor files, directories, glob patterns, or PDB IDs
- Independent preparation, box generation, and heme/Compound-I validation for every ensemble member
- Per-receptor failure isolation with combined raw-score and statistical summary CSV files
- Automatic co-crystal redocking and heavy-atom RMSD verdicts
- Validated ferric-heme and Compound-I preparation
- RESP charge assignment and final PDBQT validation
- Multi-heme-center support
- PDBQT, SDF, bond-order-corrected SDF, PDB, CSV, and SVG output
- Eight interaction classes, including hydrogen bonding, hydrophobic, aromatic, ionic, halogen, and metal/heme coordination
- Python API access for integration into custom pipelines
pip install anyonecandockacd <command> [options]
dock Full pipeline: receptor + ligand + Vina (single ligand)
redock Self-docking validation; no SMILES input needed
batch Dock multiple ligands against one receptor
ensemble Dock multiple ligands against multiple receptor conformations
receptor Prepare receptor only
ligand Prepare ligand only
diagram Generate a 2D interaction diagram SVG
# Dock a single ligand by compound name
acd dock --receptor 1M17 --compound erlotinib
# Dock by SMILES
acd dock --receptor 4AGN --smiles "CCO" --name ethanol
# Reuse a prepared receptor
acd dock --receptor-json ./rec/receptor_summary.json --compound baicalein
# Dock from local structure files
acd dock --receptor structure.cif --ligand-file ligand.sdf --name mylig
# Self-docking validation
acd redock --receptor 4AGN
acd redock --receptor structure.cif --fmt CIF
acd redock --receptor 4AGN --resname DC3 --diagram
# Batch docking
acd batch --receptor 1M17 --ligands compounds.smi
acd batch --receptor 4AGN --smiles-list "CCO ethanol" "c1ccccc1O phenol"
# Receptor-ensemble docking
acd ensemble --receptors "ensemble/*.pdb" --ligands compounds.smi --seed 42
# Ensemble docking with aligned receptors and a shared box
acd ensemble \
--receptors model1.pdb model2.cif model3.pdb \
--ligands compounds.smi \
--center manual --cx 14.2 --cy -3.8 --cz 22.1 \
--bx 22 --by 22 --bz 22 \
--seed 42 \
--output ./ensemble_screenThe ensemble workflow accepts local PDB/mmCIF files, directories, quoted glob patterns, and four-character PDB IDs. It runs the established ACD batch workflow independently for every receptor, so receptor preparation and validation are never shared or bypassed between conformations.
For heme-containing structures, each ensemble member independently undergoes ferric-heme or Compound-I detection, Fe-S/Fe-O geometry validation, RESP assignment, and final PDBQT reread validation. A receptor that fails preparation or geometry validation is recorded and skipped rather than passed to Vina.
Use automatic or selection-based centering when each receptor requires its own box. A shared manual box should be used only when all receptor conformations are structurally aligned in the same coordinate frame.
ensemble_screen/
001_model1/ Complete batch output for receptor 1
002_model2/ Complete batch output for receptor 2
ensemble_receptors.csv Receptor preparation and run status
ensemble_scores.csv All receptor-ligand score rows
ensemble_summary.csv Best, mean, median, and population SD per ligand
The ensemble statistics are transparent ranking aids. They are not population-weighted thermodynamic binding energies.
The redock workflow automatically identifies and re-docks the co-crystal ligand. SMILES are obtained in this order:
- RCSB Chemical Component Dictionary (CCD)
- CIF
_chem_comp.pdbx_smiles - 3D coordinate conversion as a fallback
The heavy-atom RMSD verdict is reported automatically:
- PASS: RMSD <= 2.0 Å
- BORDERLINE: RMSD > 2.0 Å and <= 3.0 Å
- FAIL: RMSD > 3.0 Å
from anyonecandock import core
SEED = 72
BOX_SIZE = (18, 18, 18)
vina_bin = "/path/to/vina"
result = core.prepare_receptor(
raw_pdb="raw.pdb",
wdir="./rec",
box_size=BOX_SIZE,
)
lig = core.prepare_ligand(
smiles="c1ccc(cc1)O",
name="phenol",
ph=7.4,
wdir="./lig",
mode="pkanet",
use_pubchem=False,
max_tautomers=8,
ph_window=1.0,
conformer_seed=SEED,
)
dock = core.run_vina(
receptor_pdbqt=result["rec_pdbqt"],
ligand_pdbqt=lig["pdbqt"],
config_txt=result["config_txt"],
vina_path=vina_bin,
exhaustiveness=16,
n_modes=10,
energy_range=3,
seed=SEED,
wdir="./out",
out_name="phenol",
)
print("Top score:", dock["top_score"])Best for: workshops, education, portable research, and GPU docking without local setup.
- Guided notebook workflow with step-by-step preparation and analysis
- Upload PDB/mmCIF structures or download them from RCSB
- Receptor and pH-aware ligand preparation
- Validated ferric-heme and Compound-I handling
- Four supported docking engines:
- AutoDock Vina 1.2.7
- VinaXB
- GNINA
- Vina-GPU 2.1
- Google T4 GPU support for Vina-GPU
- Co-crystal redocking before production docking
- Interactive ligand and pose selection
- Binding-box validation
- Heavy-atom RMSD analysis across poses
- Engine-aware score extraction
- Ranked CSV results and score plots
- Individual result download or complete ZIP packaging
- Mobile- and tablet-friendly result export
- No additional
prepare_receptor.pyupload required; required preparation logic is included in the notebook/package
| Capability | Online | Local | CLI | Colab |
|---|---|---|---|---|
| Graphical workflow | Yes | Yes | No | Notebook |
| No local installation | Yes | No | No | Yes |
| Basic docking | Yes | Yes | Yes | Yes |
| Batch docking | Yes | Yes | Yes | Yes |
| AutoDock Vina | Yes | Yes | Yes | Yes |
| VinaXB, GNINA, and Vina-GPU | No | No | No | Yes |
| Automated scripting | No | No | Yes | Partial |
| Interactive Pose Browser | Yes | Yes | File output | Yes |
| ADME/ADMET analysis | Yes | Yes | Optional tools | No |
| Strict ferric/Compound-I validation | Yes | Yes | Yes | Yes |
| Private local processing | No | Yes | Yes | Colab runtime |
ACD Local, CLI, and Colab support validated preparation of ferric heme and Compound-I systems.
For supported heme centers, ACD can:
- Detect
HEME_FERRICversusCPD_Ifrom local Fe coordination geometry - Identify a ferryl oxygen geometrically rather than relying only on atom names
- Recognize ferryl oxygen labels such as
O,O1,OXY, orOXO - Identify the proximal cysteine sulfur geometrically
- Validate Fe-O and Fe-S distances before docking
- Remove an incorrectly retained O-H hydrogen from the ferryl oxygen
- Apply JSON-derived RESP charges to Fe, OXO, the heme group, and proximal cysteine
- Re-read the final PDBQT and validate required charges before docking
- Fail closed if required heme-state checks do not pass
- Handle multiple heme centers in CLI workflows
ACD supports eight interaction classes in its geometry-based analysis, including:
- Hydrogen bonds
- Hydrophobic contacts
- Aromatic interactions
- Cation-pi interactions
- Ionic interactions
- Metal/heme coordination
- Halogen bonds
- H···halogen contacts
Depending on the interface, results can also be visualized with RDKit, ProLIF, and PoseView.
| Protein class | Support | Notes |
|---|---|---|
| Standard single-chain proteins | ✅ Full | Primary use case |
| Multi-chain / homo-oligomers | ✅ Full | Multi-chain structures supported |
| Heme proteins | ✅ Full | Ferric heme and Compound-I supported in Local/CLI/Colab |
| Metal-binding proteins | ✅ Full | Common metal ions can be retained during preparation |
| MD simulation outputs | ✅ Full | PDB structures from common MD workflows can be used |
| Non-standard ligand names | ✅ Full | Ligand-like HETATM records can be detected |
| Modified amino acids | ✅ Full | Supported when retained as part of the receptor |
| Multiple co-crystal ligands | ✅ Full | Ligand selection supported |
| Cofactor-binding proteins | ✅ Full | Cofactors can be retained or removed as appropriate |
| RNA / DNA targets | No nucleic-acid-specific interaction model | |
| Covalent docking | ❌ No | Standard Vina docking is non-covalent |
AI interfaces are optional front ends to ACD rather than separate docking engines.
Ask ChatGPT to dock molecules using natural-language instructions.
Connect Claude to the ACD API as a custom MCP connector.
MCP server URL:
https://anyone-can-dock-mcp.anyonecandock.workers.dev
Example prompts:
"dock quercetin into JAK2 and report binding affinity"
"compare erlotinib vs gefitinib binding to EGFR (1M17)"
| Platform | Vina binary | Open Babel | Status |
|---|---|---|---|
| Linux x86_64 | Auto-download | apt install openbabel |
Fully supported |
| macOS Intel | Auto-download | brew install open-babel |
Fully supported |
| macOS Apple Silicon | Native aarch64 |
brew install open-babel |
Fully supported |
| Windows x86_64 | Auto-download | Installer / WSL2 | Supported; WSL2 recommended |
| Streamlit Cloud | Auto-download | via packages.txt |
Fully supported |
| Google Colab | Auto-download | apt install openbabel |
Fully supported |
If you use ACD in research, please cite the relevant methods used in your workflow.
Anyone Can Dock: An Online Molecular Docking Tool for Everyone
Hengphasatporn, K.; Bunchuay T.; Duan, L.; Shigeta, Y., J. Cheminformatics., 2026. DOI: 10.1186/s13321-026-01306-2
AutoDock Vina 1.2.7
Eberhardt et al., J. Chem. Inf. Model., 2021. DOI: 10.1021/acs.jcim.1c00203
DFDD
Hengphasatporn, K.; Duan, L.; Harada, R.; Shigeta, Y., J. Chem. Inf. Model., 2026. DOI: 10.1021/acs.jcim.5c02852
RDKit · Landrum, G. (2023) · https://www.rdkit.org
ProDy · Bakan et al., Bioinformatics, 2011. DOI: 10.1093/bioinformatics/btr168
stmol · Nápoles-Duarte et al., Front. Mol. Biosci., 2022. DOI: 10.3389/fmolb.2022.990846
Dimorphite-DL · Ropp et al., J. Cheminform., 2019. DOI: 10.1186/s13321-019-0336-9
pKaNET Cloud · Please cite the corresponding manuscript when available.
gemmi (optional, for CIF support) · Wojdyr, M., JOSS, 2022. DOI: 10.21105/joss.04200
MIT License — see LICENSE for details.
Anyone Can Dock: from structure preparation to validated docking results, without making molecular docking harder than it needs to be.