Anyone docking: Browser-based molecular docking β no installation required.
Paste a SMILES, draw a structure, or upload a file. Pick a PDB or CIF. Dock in seconds.
Recent updates: New CLI and Python API via
anyonecandockon PyPI. Newredockcommand β automatically re-docks the co-crystal ligand with zero SMILES input (RCSB CCD lookup β CIF block β 3D fallback). Receptor setup now auto-scans ligand-like HETATM records. Ligand preparation supports pKaNET-ranked microstates with manual rank selection.
| Mode | Best for | How |
|---|---|---|
| π Streamlit Web App | Quickest start, no setup | Open in browser β |
| βοΈ Streamlit via Colab | Web UI on free GPU/CPU | |
| π₯οΈ Streamlit locally | Full control, own machine | pip install anyonecandock && streamlit run app.py |
| π Colab notebook | Batch docking, scripting | |
β¨οΈ CLI (acd) |
Automation, pipelines, scripts | pip install anyonecandock then acd dock ... |
| π Python API | Programmatic integration | from anyonecandock import core |
| π€ GPT / Claude plugin | Natural-language docking | See below β |
Ask GPT-4o to dock molecules using natural language.
Connect Claude to the ACD API as a custom MCP connector β ask Claude to dock molecules, search PDB targets, and interpret results directly in the chat.
Setup (3 steps):
-
Copy the MCP server URL:
https://anyone-can-dock-mcp.anyonecandock.workers.dev -
Click the badge below to open Claude Connectors settings, then click "Add custom connector"
-
Paste the URL into Remote MCP server URL and click Add
Example prompts after connecting:
"dock quercetin into JAK2 and report binding affinity"
"compare erlotinib vs gefitinib binding to EGFR (1M17)"
Powered by: AutoDock Vina 1.2.7 Β· pKaNET protonation at pH 7.4 Β· MCP Streamable HTTP
MCP server URL:
https://anyone-can-dock-mcp.anyonecandock.workers.dev
Install from PyPI:
pip install anyonecandockacd <command> [options]
dock Full pipeline: receptor + ligand + Vina (single ligand)
redock Self-docking validation β no SMILES input needed
batch Batch docking from a .smi file or SMILES list
receptor Prepare receptor only (download/convert β .pdb + .pdbqt + box)
ligand Prepare ligand only (SMILES/file β .pdbqt + .sdf)
diagram Generate a 2D interaction diagram SVG for a completed run
# Dock a single ligand by compound name
acd dock --receptor 1M17 --compound erlotinib
# Dock by SMILES
acd dock --receptor 4AGN --smiles "CCO" --name ethanol
# Dock from an existing receptor preparation (skips re-prep)
acd dock --receptor-json ./rec/receptor_summary.json --compound baicalein
# Dock from a structure file
acd dock --receptor structure.cif --ligand-file ligand.sdf --name mylig
# ββ Redocking (self-docking validation) β NEW ββββββββββββββββββββββββββ
# Re-docks the co-crystal ligand automatically; no SMILES required.
# SMILES acquired via: RCSB CCD β CIF _chem_comp.pdbx_smiles β 3D fallback
acd redock --receptor 4AGN
acd redock --receptor structure.cif --fmt CIF
acd redock --receptor 4AGN --resname DC3 --diagram
acd redock --receptor-json ./rec/receptor_summary.json
# Batch docking
acd batch --receptor 1M17 --ligands compounds.smi
acd batch --receptor 4AGN --smiles-list "CCO ethanol" "c1ccccc1O phenol"The redock command automatically identifies and re-docks the co-crystal ligand present in a PDB/CIF structure β no SMILES input required.
acd redock --receptor <PDB_ID_or_FILE> [options]
Options:
--resname Override the auto-detected ligand residue name (e.g. DC3, ATP)
--name Output name for the re-docked ligand (default: residue code)
--ph Target pH for protonation (default: 7.4)
--diagram Generate 2D interaction diagram after docking
--save-poses Save each docked pose as an individual SDF/PDB file
-e / --exhaustiveness Vina exhaustiveness (default: 16)
-n / --poses Max poses to output (default: 10)
-o / --output Output directory (default: ./acd_redock)
SMILES acquisition order:
- RCSB CCD REST API β ideal, stereo-correct, curated SMILES from the PDB chemical component dictionary
- CIF
_chem_comp.pdbx_smilesβ parsed directly from the structure CIF (no network required) - 3D coordinate conversion β RDKit + OpenBabel with hydrogen-aware bond perception (last resort; a warning is shown)
Redocking verdict (printed automatically):
- β PASS β best pose RMSD β€ 2.0 Γ vs crystal
- β BORDERLINE β RMSD 2β3 Γ
- β FAIL β RMSD > 3.0 Γ
usage: acd dock [options]
acd dock --help
Protein:
--receptor PDB_ID_or_FILE
PDB ID (auto-downloaded) or path to .pdb/.cif
--receptor-json PATH
JSON from a previous acd receptor run
--fmt {PDB,CIF}
Input format (default: PDB)
Ligand:
--smiles SMILES
Ligand SMILES string
--compound NAME
Compound name for PubChem lookup
--ligand-file PATH
Ligand structure file (.sdf/.mol2/.pdb)
--name NAME
Output name (default: LIG)
--ph PH
Target pH (default: 7.4)
--neutral
Keep the input charge and add hydrogens only
--no-pubchem
Skip PubChem pKa lookup
Docking box:
--center {auto,manual,selection}
Box center mode (default: auto)
--cx X
Manual box-center X coordinate
--cy Y
Manual box-center Y coordinate
--cz Z
Manual box-center Z coordinate
--bx Γ
Box X size, 10β40 Γ
(default: 18)
--by Γ
Box Y size, 10β40 Γ
(default: 18)
--bz Γ
Box Z size, 10β40 Γ
(default: 18)
pKaNET:
--max-tautomers N
Maximum tautomers, 1β20 (default: 8)
--ph-window PH
pH window, 0.2β2.0 (default: 1.0)
--conformer-seed N
RDKit conformer seed (default: random)
Vina:
-e N, --exhaustiveness N
Vina exhaustiveness (default: 16)
-n N, --poses N
Maximum poses (default: 10)
--energy-range KCAL
Energy range in kcal/mol (default: 3)
--seed N
Vina random seed (default: random)
Validation and output:
--redock-smiles "SMILES [name]"
Dock a reference co-crystal ligand
--save-poses
Save individual pose files
--diagram
Generate a 2D interaction diagram
-o OUTPUT, --output OUTPUT
Output directory (default: ./acd_results)from anyonecandock import core
# Reproducibility settings
SEED = 72
BOX_SIZE = (18, 18, 18)
vina_bin = "/path/to/vina"
# Prepare receptor
result = core.prepare_receptor(
raw_pdb="raw.pdb",
wdir="./rec",
box_size=BOX_SIZE,
)
# Prepare ligand using heuristic pKaNET backend
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,
)
# Run deterministic docking
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"])
# Auto-detect co-crystal SMILES
smiles, source, warning = core.get_cocrystal_smiles(
ligand_pdb_path=result["ligand_pdb_path"],
cocrystal_ligand_id=result["cocrystal_ligand_id"],
raw_pdb="raw.cif",
)
print(f"SMILES source: {source}")
print(f"SMILES: {smiles}")
if warning:
print(f"Warning: {warning}")
# 2D interaction diagram
svg_bytes = core.draw_interaction_diagram(
receptor_pdb=result["rec_fh"],
pose_sdf="./out/phenol_out.sdf",
smiles=lig["prot_smiles"],
title="Phenol Β· 4AGN",
)
with open("./out/diagram.svg", "wb") as handle:
handle.write(svg_bytes)The simplest entry point β no installation, runs in the browser.
Supports single and batch docking, all 2D diagram engines, interactive drag layout, ADME predictions, and ready-to-use figure export.
Run the full Streamlit web interface on Colab's free compute tier β no local install needed.
Batch docking with 4 docking engines in a Python notebook environment:
The local app uses the deterministic heuristic pKaNET backend. ML pKa backends are disabled.
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): Fully supported β the app auto-downloads the correct
aarch64Vina binary.
Recommended: Use WSL2 with Ubuntu and follow the Linux instructions above.
For native Windows:
- Install OpenBabel from openbabel.org and add to PATH
- Install Cairo/Pango via conda:
conda install -c conda-forge cairo pango
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.pyanyone-docking/
βββ app.py
βββ core.py
βββ requirements.txt # Python packages
βββ packages.txt # System packages (openbabel, libcairo2-dev, β¦)
| π¬ | Single & batch docking via AutoDock Vina 1.2.7 |
| β»οΈ | redock β self-docking validation β auto-fetches co-crystal SMILES (RCSB CCD β CIF β 3D), docks, reports RMSD verdict |
| ποΈ | Guided receptor prep β download any PDB/CIF, review ligand candidates automatically, strip solvent, add hydrogens |
| π | PDB & mmCIF support β upload .pdb or .cif files or download from RCSB (auto-fallback to CIF for large entries) |
| π― | Smart grid detection β auto-detects ligand-like HETATM records; shows dropdown only when multiple candidates exist |
| βοΈ | 3-way ligand input β SMILES text, file upload, or draw in Ketcher |
| 𧬠| pKaNET-ranked microstates β tautomer-aware protonation at target pH with manual rank selection Open in browser β |
| βοΈ | Conservative docking-state selection β avoids over-deprotonated states for polyphenols, flavonoids, coumarins |
| 𧬠| Heme-aware preparation β HEM/HEC/HEA/HEB stripped before OpenBabel, re-injected with correct AD4 atom types |
| βοΈ | Water/cofactor/metal control β remove waters, keep metals, keep/strip FAD/NAD/ATP/CoA independently |
| πΊοΈ | Three 2D diagram engines: ACD custom SVG Β· RDKit Β· PoseView (proteins.plus) |
| π±οΈ | Interactive drag mode β reposition residue labels in real time, export PNG (up to 600 dpi) or SVG |
| π | Binding pocket viewer β interacting residues as orange sticks with adjustable distance cutoff |
| π€ | AI-ready prompt β auto-filled for Claude, GPT-4o, Gemini; adapts to redocking context |
| π | 3D viewers β animated multi-pose sweep, pose selector, binding pocket view |
| π | One-click ZIP β all poses, corrected SDFs, diagrams, score plot, pKaNET log |
Three tabs β each with a different rendering engine:
| Feature | Detail |
|---|---|
| 8 interaction types | H-bond (distance on line), hydrophobic, Ο-Ο, cation-Ο, ionic, metal/heme, halogen bond, HΒ·Β·Β·halogen |
| Geometry-based | All interactions computed from 3D coordinates β no server, works offline |
| ACS-style bonds | Bond widths, double-bond spacing, and wedge geometry follow ACS publication standards |
| Smart layout | Radial placement by interaction angle; push-apart prevents overlap |
| Interactive drag | Reposition any residue label in real time; distance labels update live |
| Export | SVG (vector) Β· PNG at 1Γ / 2Γ (150 dpi) / 3Γ (300 dpi) / 4Γ (600 dpi) |
Classic highlight-circle style. H-bond (blue) Β· Hydrophobic (green) Β· Other/metal (pink). Side-by-side with co-crystal reference when available.
REST API submission of receptor + docked pose. PoseView v1 (docked pose) + PoseView2 (co-crystal reference by PDB code + ligand ID). Built-in API test and manual fallback download.
β οΈ PoseView limitation: charged species are shown in neutral form. Use ACD or RDKit diagrams for ligands with formal charges.
| Protein class | Support | Notes |
|---|---|---|
| Standard single-chain proteins | β Full | Primary use case |
| Multi-chain / homo-oligomers | β Full | Duplicate chains deduplicated; chain A ligand auto-selected |
| Heme proteins (CYP450, peroxidases, Hb, Mb) | β Full | Fe-porphyrin handled separately; grid auto-centers on Fe |
| Metal-binding proteins (zinc fingers, carbonic anhydrase) | β Full | ZN, MG, CA, MN, FE, CU re-injected with correct charges |
| MD simulation outputs (GROMACS, AMBER) | β Full | Blank chain IDs auto-assigned to chain A |
| Non-standard ligand names (MOL, LIG, UNL, INH) | β Full | |
| Modified amino acids (CYP, MSE, TPO, SEP) | β Full | Backbone atom check keeps them in receptor |
| Multiple co-crystal ligands | β Full | Dropdown shown only when needed |
| Cofactor-binding proteins (FAD, NAD, ATP, CoA) | β Full | Kept or stripped independently |
| Glycoproteins | Glycans kept in receptor; not in 2D diagram | |
| Membrane proteins | Dockable without lipids; lipids not auto-filtered | |
| RNA / DNA targets | Basic interaction detection; no nucleic-acid-specific types | |
| Covalent docking | β No | Vina is non-covalent only |
Available in all modes (Streamlit, CLI acd redock, API, Colab):
| Feature | Description |
|---|---|
| Auto SMILES acquisition | RCSB CCD API β CIF _chem_comp.pdbx_smiles β 3D conversion (no manual input needed) |
| RMSD vs crystal | Heavy-atom RMSD via MCS matching against original crystal pose |
| Verdict | PASS β€ 2.0 Γ Β· BORDERLINE 2β3 Γ Β· FAIL > 3.0 Γ |
| Reference score line | Dashed red line on affinity plot |
| Pose confirmation | Browse reference poses, pin as baseline for score comparisons |
| Download | Export reference poses as SDF/PDBQT |
| Platform | Vina binary | OpenBabel | Status |
|---|---|---|---|
| Linux x86_64 | β Auto-download | apt install openbabel |
Fully supported (primary) |
| macOS Intel | β Auto-download | brew install open-babel |
Fully supported |
| macOS Apple Silicon (M1βM4) | β
Native aarch64 |
brew install open-babel |
Fully supported |
| Windows x86_64 | β Auto-download | Installer | Supported (WSL2 recommended) |
| Streamlit Cloud | β Auto-download | via packages.txt |
Fully supported |
| Google Colab | β Auto-download | !apt install openbabel |
Fully supported |
| Mode | Meaning |
|---|---|
| Auto recommended | pKaNET recommendation. For ambiguous systems (polyphenols, coumarins, flavonoids), may choose a conservative state rather than the highest score |
| Highest-scoring | Top-ranked pKaNET state directly |
| Manual rank | Choose any ranked microstate from a dropdown before docking |
| Option | Default | Effect |
|---|---|---|
| Remove waters | β On | Removes crystallographic waters |
| Keep metal ions | β On | Keeps ZN, MG, CA, MN, FE, CU, CO, NI, CD, HG, NA, K |
| Keep cofactors | β On | Keeps ATP, ADP, FAD, FMN, NAD, CoA, SAM, HEM |
Buffers and additives (GOL, EDO, PEG, SO4, PO4) are removed by default.
If you use this tool in research, please cite:
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.
