Skip to content

taka78/ultidock

Repository files navigation

Ultidock: High-Throughput Docking Pipeline

GitHub Traffic Badge

📖 Overview

Ultidock is a fully automated and lightweight molecular docking pipeline built around AutoDock Vina. Designed for large-scale virtual screening, it streamlines every stage—from ligand preparation to result analysis—while maintaining flexibility and performance. With integrated SQLite support and a multithreaded architecture, Ultidock is ideal for users aiming to dock thousands of ligands without hassle.

✨ Core Features

  • End-to-End Automation: Ligand preparation, docking, scoring, and result analysis in one pipeline.
  • Multithreaded Performance: Utilizes all available CPU cores for fast, parallel docking.
  • Integrated SQLite Database: Efficient and structured result storage, ideal for high-throughput workflows.
  • Configurable Analysis: Easily filter and export data based on RMSD, binding energy, or your own criteria.
  • Minimal Setup: Tweak your workflow with a single config.py—no GUI required.

⚙️ Requirements

Ultidock is designed to be simple to deploy with only essential dependencies:

  • Python 3.10 or newer
  • AutoDock Vina (included or preconfigured)
  • SQLite3 (included with Python)
  • Pandas, NumPy etc.

🚀 Quick Start

1. Clone the repository:

git clone https://github.com/taka78/ultidock.git
cd ultidock

2. Adjust the expected analysing standarts for your molecule from analyse_docking_results.py:


    DEFAULT_AFFINITY = -7.0        # kcal/mol // you should change this according to how much chemically active your macromolecule.
    DEFAULT_RMSD_LB = 5.0          # Å // you should change this according to how big your macromolecule's docking site is.
    DEFAULT_RMSD_UB = 10.0         # Å // you should change this according to how big your macromolecule's docking site is.
    DEFAULT_MIN_MODEL = 2          # integer // you should change this according to how picky you are.

3. Run the pipeline:

python3 /path/to/your/ultidock/docking/run.py

🛠 Configuration (config.py)

Ultidock uses a central configuration file to define all relevant paths and default parameters. When you launch the pipeline, these values are loaded automatically, allowing you to focus on your molecules instead of managing folders.

BASE_DIR = '/your/path/to/ultidock'
DB_PATH = f"{BASE_DIR}/results/ultidock_results.db"
LIGANDS_DIR = f"{BASE_DIR}/docking/LIGANDS_DIR"
MACRO_MOL_DIR = f"{BASE_DIR}/docking/MACRO_MOL_DIR"
DOCKING_DIR = f"{BASE_DIR}/docking"
VINA_DIR = f"{BASE_DIR}/docking"

Macromolecule zoning and docking regions are predicted automatically by analyzing the geometry of each ligand. The system calculates grid centers and sizes based on ligand spatial distribution, then generates all required .gpf and .glg files for autogrid4 behind the scenes—no need to manually define binding sites or run external preparation tools.


🔍 Results

All docking outcomes are logged directly into an SQLite database located at results/ultidock_results.db. This structured format allows for fast queries, filtering, and large-scale result aggregation.

In addition to database storage, successful docking results are tracked by ligand filename. This makes it easy to manually inspect or reprocess specific ligand–macromolecule pairs. If a file encounters an error or is skipped, it won’t be silently dropped—you’ll know.

For quick access or spreadsheet compatibility, docking summaries are also exported to .csv files alongside the database. This gives you flexibility to review, visualize, or integrate results into your own analysis workflows without needing a database viewer.


💾 Exporting Results

To export results to Excel or other formats, you can use the built-in analysis script:

# Export to Excel (.xlsx)
python docking/analyse_docking_results.py --out results.xlsx

You can also modify this script to change filter logic (e.g., affinity thresholds, pose count), or to output in CSV, TSV, or other formats. All exports are based on the data already stored in the SQLite database for reliability.

You can customize output columns, filter criteria, or data formats with a few edits to the analysis script.

🤝 Contributing

Contributions are welcome! Please open an issue or submit a pull request.


📖 Citation

If you use Ultidock in your research, publication, or automated pipeline, please consider citing it as:

Turgut, T. (2025). Ultidock: A Lightweight Parallelized Docking Pipeline for Ligand Screening. GitHub Repository. https://github.com/taka78/ultidock

You are free to use and modify this software under the MIT License. However, citation and credit are appreciated to support continued development.


📎 Acknowledgements

Ultidock relies on the robust and widely used AutoDock Vina software for molecular docking. If you use Ultidock, please also cite the original Vina publication:

Trott, O., & Olson, A. J. (2010). AutoDock Vina: Improving the speed and accuracy of docking with a new scoring function, efficient optimization, and multithreading. Journal of Computational Chemistry, 31(2), 455–461. https://doi.org/10.1002/jcc.21334

⭐ If you find Ultidock useful, please star the repository!

About

An Autodock Vina automation project with basic data analysis tools.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •