DockingAutoDock Vina

How to Run AutoDock Vina Without Installing Anything

Skip the painful local installation of AutoDock Vina. Run molecular docking in the cloud via API — just send SMILES and a PDB target to get binding poses back.

Ryan Bethencourt
March 22, 2026
7 min read

The Pain of Installing AutoDock Vina Locally

AutoDock Vina is one of the most widely used molecular docking tools in computational drug discovery, with over 20,000 citations. Despite its popularity, getting Vina running locally remains a frustrating experience. The installation process involves compiling or downloading the Vina binary, installing the ADFR Suite for receptor preparation, configuring Python bindings for MGLTools, and managing a chain of dependencies that frequently conflict with modern Python environments.

Before you even run your first docking, you need to prepare both the receptor and ligand in PDBQT format. This means adding hydrogens, computing partial charges with AutoDockTools or Open Babel, defining the search box coordinates manually, and writing configuration files. For someone who just wants to test whether a molecule binds a target, this overhead is significant.

  • ADFR Suite installation often fails on modern macOS and Linux distributions
  • PDBQT preparation requires MGLTools, which depends on Python 2.7
  • Search box definition requires a molecular viewer and manual coordinate entry
  • Dependency conflicts with conda environments and modern Python packages
  • No native Windows ARM or Apple Silicon support in older releases

Running Vina as a Cloud API

SciRouter eliminates this entire setup by hosting AutoDock Vina as a managed API endpoint. You send a SMILES string for your ligand and a PDB identifier (or uploaded PDB file) for your receptor. The API handles all preparation steps internally: converting SMILES to a 3D conformer, generating PDBQT files, detecting the binding pocket, setting the search box, and running the Vina scoring function.

The result is a set of docked poses with binding affinity scores in kcal/mol, returned as structured JSON. No binaries to install, no format conversions to manage, no search box coordinates to guess.

Complete Docking Run in Python

Here is a complete example that docks imatinib (a kinase inhibitor) against the ABL1 kinase using the SciRouter API:

Dock a molecule with AutoDock Vina via SciRouter
import requests
import time

API_KEY = "sk-sci-your-api-key"
BASE = "https://api.scirouter.ai/v1"
headers = {"Authorization": f"Bearer {API_KEY}"}

# Submit a docking job
response = requests.post(
    f"{BASE}/docking/vina",
    headers=headers,
    json={
        "ligand_smiles": "CC1=C(C=C(C=C1)NC(=O)C2=CC=C(C=C2)CN3CCN(CC3)C)NC4=NC=CC(=N4)C5=CN=CC=C5",
        "receptor_pdb": "2HYY",
        "exhaustiveness": 16,
        "num_poses": 5
    }
)
job = response.json()
job_id = job["job_id"]
print(f"Docking job submitted: {job_id}")

# Poll for results
while True:
    result = requests.get(
        f"{BASE}/docking/vina/{job_id}",
        headers=headers
    ).json()
    if result["status"] == "completed":
        for i, pose in enumerate(result["poses"]):
            print(f"Pose {i+1}: {pose['affinity']:.1f} kcal/mol")
        break
    elif result["status"] == "failed":
        print(f"Failed: {result['error']}")
        break
    time.sleep(5)
Tip
Setting exhaustiveness to 16 (double the default of 8) improves pose sampling at the cost of roughly doubling the runtime. For initial screening, the default of 8 is usually sufficient.

Local Workflow vs Cloud Workflow

Local Installation

  • Install Vina binary and ADFR Suite (30 to 60 minutes, debugging included)
  • Prepare receptor: add hydrogens, assign charges, convert to PDBQT
  • Prepare ligand: generate 3D conformer from SMILES, convert to PDBQT
  • Define search box: open in PyMOL, measure coordinates, write config file
  • Run docking: execute Vina from command line
  • Parse output: read PDBQT output file, extract scores and poses

Cloud API

  • Send a single API request with SMILES and PDB ID
  • Poll for results
  • Receive structured JSON with poses and scores

The cloud approach reduces a multi-hour setup to a single HTTP call. For researchers who need to dock a few compounds quickly, or for developers building docking into automated pipelines, the difference is substantial.

When Cloud Docking Makes Sense

Cloud-based Vina is particularly valuable in several scenarios:

  • Rapid hypothesis testing: check if a candidate molecule fits a target before committing to synthesis
  • Automated pipelines: integrate docking into AI-driven drug discovery workflows without managing infrastructure
  • Team environments: share consistent docking results without requiring every team member to install Vina
  • Hackathons and coursework: get docking results immediately without a lengthy setup

Try AutoDock Vina directly from the SciRouter tools page, or explore DiffDock for an AI-based alternative that eliminates the need for a predefined search box.

For a deeper understanding of how Vina scoring works and how to interpret results, read our AutoDock Vina beginner tutorial.

Frequently Asked Questions

Do I need PDBQT files to use AutoDock Vina via API?

No. When using AutoDock Vina through SciRouter, you provide a SMILES string for the ligand and a PDB ID or PDB file for the receptor. The API handles all format conversion including PDBQT preparation, partial charge assignment, and hydrogen addition automatically.

Is the accuracy the same as running Vina locally?

Yes. SciRouter runs the same AutoDock Vina binary on its infrastructure. The scoring function, search algorithm, and output format are identical to a local installation. Results are reproducible given the same random seed and parameters.

How fast is cloud-based Vina docking?

A typical single-ligand docking run with default exhaustiveness (8) completes in 30 to 120 seconds depending on the binding site size and ligand flexibility. This is comparable to local execution on a modern multi-core CPU.

Can I do batch docking with the API?

Yes. You can submit multiple docking jobs in parallel by making concurrent API requests. Each job returns a job ID that you poll independently. This makes it straightforward to screen hundreds of compounds by scripting parallel submissions.

Try It Free

No Login Required

Try this yourself

500 free credits. No credit card required.