Bindigo
Protein-Ligand Binding Affinity Prediction using Molecular Docking and Machine Learning
Bindigo is a Python package for predicting protein-ligand binding affinities. It combines molecular docking (AutoDock Vina) with machine learning to provide fast, accurate predictions for early-stage drug discovery.
Status: v0.1.0 is an alpha skeleton. The CLI, input validation, and dependency checks work. The docking and machine learning steps are not implemented yet, so
bindigo predictdoes not yet produce a binding affinity or write a results file. The output shown below is the target behaviour, not what this release does.
Features
- Hybrid Prediction: Combines AutoDock Vina docking with pre-trained ML models
- Simple Interface: A single
bindigocommand-line tool - Automated Workflow: Handles all preprocessing automatically
- Database Integration: Fetch structures from PDB, compounds from ChEMBL
- Flexible Input: Accepts PDB IDs, files, SMILES strings, or SDF files
- Fast Results: Get predictions in minutes
Installation
From PyPI (when released)
pip install bindigo
From Source (Development)
git clone https://github.com/Siavashghaffari/Bindigo.git
cd Bindigo
pip install -e .
Dependencies
Bindigo requires Python 3.9+ and the following packages:
- RDKit (cheminformatics)
- BioPython (protein handling)
- AutoDock Vina (molecular docking)
- scikit-learn (machine learning)
- Click (CLI interface)
All of these except AutoDock Vina are installed automatically via pip.
AutoDock Vina must be installed separately - it is a native binary and pip cannot install it:
conda install -c conda-forge vina # conda
brew install autodock-vina # macOS
On Linux and Windows, download a binary from the
AutoDock Vina releases page
and add it to your PATH. If Vina is installed somewhere else, point Bindigo
at it with the BINDIGO_VINA_PATH environment variable:
export BINDIGO_VINA_PATH=/full/path/to/vina
Bindigo checks for Vina before running and prints installation instructions if it is missing.
Quick Start
Command Line Interface
Basic prediction using PDB ID and SMILES:
bindigo predict --protein 1HSG --ligand "CC(=O)Nc1ccc(O)cc1" --output results.csv
Using local files:
bindigo predict --protein protein.pdb --ligand ligand.sdf --output results.csv
Custom binding site:
bindigo predict --protein 1HSG --ligand "CCO" --center 10.5 20.3 15.2 --size 25 --output results.csv
Verbose output:
bindigo predict --protein 1HSG --ligand "CCO" --output results.csv --verbose
Example Output (planned)
The following shows the intended output once docking and ML prediction are implemented; v0.1.0 does not produce it yet.
╔══════════════════════════════════════════════════════════════════╗
║ Bindigo v0.1.0 ║
║ Protein-Ligand Binding Affinity Prediction ║
╚══════════════════════════════════════════════════════════════════╝
[1/5] Loading inputs...
✓ Ligand: CC(=O)Nc1ccc(O)cc1 (Acetaminophen)
✓ Protein: Fetching PDB ID 1HSG from RCSB...
[2/5] Preparing protein...
✓ Loaded structure: HIV-1 Protease (198 residues, Chain A)
[3/5] Preparing ligand...
✓ Generated 3D structure (11 atoms)
[4/5] Running molecular docking...
✓ Best pose: -6.2 kcal/mol
[5/5] Predicting binding affinity...
✓ ML model prediction complete
╔══════════════════════════════════════════════════════════════════╗
║ PREDICTION RESULTS ║
╠══════════════════════════════════════════════════════════════════╣
║ Predicted Kd: 245.7 nM ║
║ Confidence: High ║
║ Docking Score: -6.2 kcal/mol ║
╚══════════════════════════════════════════════════════════════════╝
Results saved to: results.csv
✓ Prediction completed in 2m 34s
Output Format (planned)
CSV Output
ligand_id,smiles,predicted_kd_nM,confidence,docking_score_kcal_mol,pose_file
ligand_1,CC(=O)Nc1ccc(O)cc1,245.7,High,-6.2,ligand_1_pose.pdb
Fields:
predicted_kd_nM: Predicted dissociation constant in nanomolarconfidence: High/Medium/Low based on model applicabilitydocking_score_kcal_mol: AutoDock Vina docking scorepose_file: Path to docked structure PDB file
Documentation
- Installation Guide: See above
- User Guide: Coming soon
- API Reference: Coming soon
- Examples: See
examples/directory
Use Cases
- Virtual Screening: Screen compound libraries against protein targets
- Lead Optimization: Evaluate binding affinities of compound analogs
- Drug Repurposing: Test existing drugs against new targets
- Research: Computational binding affinity studies
Limitations
Current version (v0.1.0) has the following limitations:
- Single predictions only (no batch mode yet)
- Rigid protein docking (no flexible residues)
- Small molecule ligands only (MW < 1000 Da)
- CPU only (no GPU acceleration)
License
MIT - see LICENSE.
Contributing
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
Citation
If you use Bindigo in your research, please cite:
Bindigo: A Python package for protein-ligand binding affinity prediction
https://github.com/Siavashghaffari/Bindigo
Bindigo uses the following tools:
- AutoDock Vina: Eberhardt et al., J. Chem. Inf. Model. 2021
- RDKit: https://www.rdkit.org
- BioPython: Cock et al., Bioinformatics 2009
- scikit-learn: Pedregosa et al., JMLR 2011
Acknowledgments
- PDBbind database for training data
- RCSB PDB for protein structures
- RDKit and BioPython communities
Development Status
Current version: 0.1.0 (Alpha)
This is an early development version. APIs may change. Production use is not recommended yet.
Authors
This work was developed by Siavash Ghaffari. For any questions, feedback, or additional information, please feel free to reach out. Your input is highly valued and will help improve and refine this pipeline further.
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 bindigo-0.1.0.tar.gz.
File metadata
- Download URL: bindigo-0.1.0.tar.gz
- Upload date:
- Size: 43.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.10.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
07fb446bd0e6f419cd9e6ecc4ebb16b24b77f1c724e5cfe5e0acc5b01d86e62b
|
|
| MD5 |
ae3a78a14019b4abdb5e269aa4a417af
|
|
| BLAKE2b-256 |
c569eaa028433a7a6d515cd058fda4403c278be57267a06be90dc294e9793362
|
File details
Details for the file bindigo-0.1.0-py3-none-any.whl.
File metadata
- Download URL: bindigo-0.1.0-py3-none-any.whl
- Upload date:
- Size: 25.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.10.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3923238d37d00ed37a3c588c92650b40ee5cb5514bed8cf744bc862feb62deab
|
|
| MD5 |
d07ed902f0ea1d0a6c31fb90f5bb2c40
|
|
| BLAKE2b-256 |
eac16b74f76125d42f07947157afbb793e23946903dd250d080dac56fd1d42ad
|