Docker Automation
Project description
VariDock
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:
- Structure prediction — AlphaFold 3 co-folding with pre-computed MSA reuse across combinatorial protein–ligand screens
- Molecular dynamics — NAMD-based simulations to generate conformational ensembles and validate predicted complexes
- Pocket detection — DeepSurf-based identification of binding sites on MD-sampled frames
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
118dec771b87a57ef07e4c379316a2a3bbb085964b37305dfafda7de481ef355
|
|
| MD5 |
8929bdc83af950f9d224f0b823e94d0b
|
|
| BLAKE2b-256 |
2dd2865644c8630edaed0e9808f73dbc17e447f5a94946fd8c721b5a9760f534
|
Provenance
The following attestation bundles were made for varidock-0.1.3.7.tar.gz:
Publisher:
workflow.yml on abdollahegazy/VariDock
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
varidock-0.1.3.7.tar.gz -
Subject digest:
118dec771b87a57ef07e4c379316a2a3bbb085964b37305dfafda7de481ef355 - Sigstore transparency entry: 988553362
- Sigstore integration time:
-
Permalink:
abdollahegazy/VariDock@7f7165c93b00b09e74086314027097ab999dc3e0 -
Branch / Tag:
refs/tags/0.1.4 - Owner: https://github.com/abdollahegazy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@7f7165c93b00b09e74086314027097ab999dc3e0 -
Trigger Event:
release
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e825c4acf5ca97f082652ba8bec73df44f31fc9f3fd11919f1e602140a12f48f
|
|
| MD5 |
59599cb916483719735e075bdedb3023
|
|
| BLAKE2b-256 |
eef7f367ce8e12fbc8c04b67ddd5c38535ea26a7222afc1e0ff057480ba369c2
|
Provenance
The following attestation bundles were made for varidock-0.1.3.7-py3-none-any.whl:
Publisher:
workflow.yml on abdollahegazy/VariDock
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
varidock-0.1.3.7-py3-none-any.whl -
Subject digest:
e825c4acf5ca97f082652ba8bec73df44f31fc9f3fd11919f1e602140a12f48f - Sigstore transparency entry: 988553437
- Sigstore integration time:
-
Permalink:
abdollahegazy/VariDock@7f7165c93b00b09e74086314027097ab999dc3e0 -
Branch / Tag:
refs/tags/0.1.4 - Owner: https://github.com/abdollahegazy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@7f7165c93b00b09e74086314027097ab999dc3e0 -
Trigger Event:
release
-
Statement type: