Skip to main content

Docker Automation

Project description

VariDock

PyPI version PyPI pyversions Docs License: MIT

A modular pipeline for cross-species protein–ligand virtual screening, combining structure prediction, molecular dynamics, pocket detection, and ensemble docking into a reproducible, HPC-ready workflow.

Overview

VariDock automates the full path from protein sequence to docked binding poses:

  1. Structure prediction — AlphaFold 3 co-folding with pre-computed MSA reuse across combinatorial protein–ligand screens
  2. Molecular dynamics — NAMD-based simulations to generate conformational ensembles and validate predicted complexes
  3. Pocket detection — DeepSurf-based identification of binding sites on MD-sampled frames
  4. Virtual screening — AutoDock Vina ensemble docking across multiple receptor conformations

Each step is a composable stage with typed inputs and outputs, making it straightforward to swap tools, extend to new species, or run partial workflows.

Installation

pip install varidock

For development:

git clone https://github.com/abdollahegazy/varidock.git
cd varidock
pip install -e ".[dev]"

Quick Start

from pathlib import Path
from varidock.stages import AF3InputBuilder, AF3MSAStage, AF3MSAMerger, AF3MSAMergerConfig
from varidock.runners.af3 import AF3Config
from varidock.types import ProteinSequence, Ligand

# 1. Build monomer input JSONs
builder = AF3InputBuilder(output_dir=Path("data/msa/fbox"), chain_id="F")
msa_input = builder.run(ProteinSequence(name="AT3G62980", sequence="MKVLF..."))

# 2. Run MSA (requires AF3 Singularity image + databases)
af3_cfg = AF3Config.from_config(script_args=("--norun_inference",))
msa_output = AF3MSAStage(af3_cfg).run(msa_input)

# 3. Merge monomer MSAs into a dimer + ligand input
merger = AF3MSAMerger(AF3MSAMergerConfig(output_dir=Path("data/complexes/IAC")))
merged = merger.run(
    msa_outputs=[fbox_msa, cor_msa],
    ligands=[Ligand(name="auxin", ccd="IAC", af3_sequence_id="L")],
)

Pipeline Architecture

VariDock uses a stage-based architecture where each processing step is an independent, typed unit:

ProteinSequence
      │
      ▼
┌─────────────────┐
│ AF3InputBuilder  │  Build AF3 input JSON (per monomer)
└────────┬────────┘
         ▼
┌─────────────────┐
│  AF3MSAStage     │  Run MSA/template search (CPU, --norun_inference)
└────────┬────────┘
         ▼
┌─────────────────┐
│  AF3MSAMerger    │  Combine monomer MSAs + ligand into multimer JSON
└────────┬────────┘
         ▼
┌─────────────────┐
│ AF3InferenceStage│  Run structure prediction (GPU, --norun_data_pipeline)
└────────┬────────┘
         ▼
        CIF
         │
         ▼
┌─────────────────┐
│   CIFToPDB       │  Convert to PDB format
└────────┬────────┘
         ▼
┌─────────────────┐
│   MD Simulation   │  NAMD molecular dynamics
└────────┬────────┘
         ▼
┌─────────────────┐
│  Pocket Detection │  DeepSurf binding site identification
└────────┬────────┘
         ▼
┌─────────────────┐
│  Ensemble Docking │  AutoDock Vina across conformations
└─────────────────┘

Stages communicate through typed dataclasses, and execution is decoupled via executors (LocalExecutor, SlurmExecutor) so the same pipeline runs on a laptop or an HPC cluster.

HPC / SLURM Support

VariDock is designed for large-scale screens on HPC clusters. The MSA stage supports sharded genetic databases for parallel search across many cores:

from varidock.runners.af3 import AF3Config, sharded_script_args

af3_cfg = AF3Config.from_config(script_args=(
    "--norun_inference",
    *sharded_script_args(jackhmmer_n_cpu=2, jackhmmer_max_shards=16),
))

Configuration

VariDock reads from a varidock.toml config file for paths to external tools:

[af3]
sif_path = "/path/to/alphafold3.sif"
model_dir = "/path/to/models"
db_dir = "/path/to/databases"
runner_script = "/path/to/run_alphafold.py"

Load with:

af3_cfg = AF3Config.from_config()

Requirements

  • Python ≥ 3.10
  • AlphaFold 3 (Singularity image + model parameters + genetic databases)
  • NAMD (for MD simulations)
  • AutoDock Vina + Meeko (for docking)
  • Open Babel (for format conversions)

License

VariDock is available under the MIT License. See LICENSE for details.

Citation

If you use VariDock in your research, please cite:

@software{varidock,
  title={VariDock: Cross-species protein-ligand virtual screening pipeline},
  url={https://github.com/abdollahegazy/varidock},
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

varidock-0.1.4.0.tar.gz (160.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

varidock-0.1.4.0-py3-none-any.whl (72.7 kB view details)

Uploaded Python 3

File details

Details for the file varidock-0.1.4.0.tar.gz.

File metadata

  • Download URL: varidock-0.1.4.0.tar.gz
  • Upload date:
  • Size: 160.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for varidock-0.1.4.0.tar.gz
Algorithm Hash digest
SHA256 a7afbddabf25426ef1ffa5774e0dda77167220a712a8f098fa127740e3d72971
MD5 58c081d51288ff6aa3d4137a90165344
BLAKE2b-256 a3a8248c459b49811f71192bf8b36ce696bcd7db91c3726ed27284c71f5e41c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for varidock-0.1.4.0.tar.gz:

Publisher: workflow.yml on abdollahegazy/VariDock

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file varidock-0.1.4.0-py3-none-any.whl.

File metadata

  • Download URL: varidock-0.1.4.0-py3-none-any.whl
  • Upload date:
  • Size: 72.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for varidock-0.1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 46da451cdc7d43325be3dd37f7d9b6f0fe76db6c8e8d0ddc7ceb1104b07042ac
MD5 f5bbf85730f1e92d5b4098ce3200722f
BLAKE2b-256 485290c9493afbe211ab4088e7b89d0a8086c998b726933839402475e8092015

See more details on using hashes here.

Provenance

The following attestation bundles were made for varidock-0.1.4.0-py3-none-any.whl:

Publisher: workflow.yml on abdollahegazy/VariDock

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page