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.3.7.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.3.7-py3-none-any.whl (72.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: varidock-0.1.3.7.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.3.7.tar.gz
Algorithm Hash digest
SHA256 118dec771b87a57ef07e4c379316a2a3bbb085964b37305dfafda7de481ef355
MD5 8929bdc83af950f9d224f0b823e94d0b
BLAKE2b-256 2dd2865644c8630edaed0e9808f73dbc17e447f5a94946fd8c721b5a9760f534

See more details on using hashes here.

Provenance

The following attestation bundles were made for varidock-0.1.3.7.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.3.7-py3-none-any.whl.

File metadata

  • Download URL: varidock-0.1.3.7-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.3.7-py3-none-any.whl
Algorithm Hash digest
SHA256 e825c4acf5ca97f082652ba8bec73df44f31fc9f3fd11919f1e602140a12f48f
MD5 59599cb916483719735e075bdedb3023
BLAKE2b-256 eef7f367ce8e12fbc8c04b67ddd5c38535ea26a7222afc1e0ff057480ba369c2

See more details on using hashes here.

Provenance

The following attestation bundles were made for varidock-0.1.3.7-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