| # Docking@HOME | |
| **Distributed and Parallel Molecular Docking Platform** | |
| [](https://www.gnu.org/licenses/gpl-3.0) | |
| [](https://boinc.berkeley.edu/) | |
| [](https://huggingface.co/) | |
| ## Overview | |
| Docking@HOME is a cutting-edge distributed computing platform that leverages the power of volunteer computing, GPU acceleration, decentralized networking, and AI-driven orchestration to perform large-scale molecular docking simulations. This project combines multiple state-of-the-art technologies to democratize drug discovery and computational chemistry. | |
| ### Key Features | |
| - 🧬 **AutoDock Integration**: Uses AutoDock Suite 4.2.6 for molecular docking simulations | |
| - 🚀 **GPU Acceleration**: CUDPP-powered parallel processing for enhanced performance | |
| - 🌐 **Distributed Computing**: BOINC framework for volunteer computing at scale | |
| - 🔗 **Decentralized Networking**: Distributed Network Settings-based coordination using the Decentralized Internet SDK | |
| - 🤖 **AI Orchestration**: Cloud Agents for intelligent task distribution and optimization | |
| - 📊 **HuggingFace Integration**: Model cards and datasets for reproducible research | |
| ## Architecture | |
| ``` | |
| ┌─────────────────────────────────────────────────────────────┐ | |
| │ Docking@HOME Platform │ | |
| ├─────────────────────────────────────────────────────────────┤ | |
| │ ┌──────────────┐ ┌──────────────┐ ┌─────────────────┐ │ | |
| │ │ Cloud Agents │ │ Decentralized│ │ BOINC Server │ │ | |
| │ │ (AI Routing) │◄─┤ Internet │◄─┤ (Task Mgmt) │ │ | |
| │ └──────────────┘ └──────────────┘ └─────────────────┘ │ | |
| │ ▼ ▼ │ | |
| │ ┌──────────────────────────────────────────────────────┐ │ | |
| │ │ Distributed Worker Nodes (BOINC Clients) │ │ | |
| │ │ ┌──────────────┐ ┌──────────────┐ │ │ | |
| │ │ │ AutoDock │◄──────►│ CUDPP │ │ │ | |
| │ │ │ (Docking) │ │ (GPU Accel) │ │ │ | |
| │ │ └──────────────┘ └──────────────┘ │ │ | |
| │ └──────────────────────────────────────────────────────┘ │ | |
| └─────────────────────────────────────────────────────────────┘ | |
| ``` | |
| ## Components | |
| ### 1. AutoDock Suite (v4.2.6) | |
| Core molecular docking engine that predicts binding modes and affinities of small molecules to protein targets. | |
| ### 2. CUDPP (CUDA Data Parallel Primitives Library) | |
| Provides GPU-accelerated parallel primitives for enhancing AutoDock's computational performance. | |
| ### 3. BOINC (Berkeley Open Infrastructure for Network Computing) | |
| Distributed computing middleware that manages volunteer computing resources globally. | |
| ### 4. The Decentralized Internet SDK | |
| Enables Distributed Network Settings-based coordination, ensuring transparency and decentralization of task distribution. | |
| ### 5. Cloud Agents | |
| AI-powered orchestration layer that optimizes task scheduling and resource allocation based on workload characteristics. | |
| ## Authors & Contributors | |
| - **OpenPeer AI** - AI/ML Integration & Cloud Agents | |
| - **Riemann Computing Inc.** - Distributed Computing Architecture | |
| - **Bleunomics** - Bioinformatics & Drug Discovery Expertise | |
| - **Andrew Magdy Kamal** - Project Lead & System Integration | |
| ## Installation | |
| ### Prerequisites | |
| - C++ compiler (GCC 7+ or MSVC 2019+) | |
| - CUDA Toolkit 11.0+ (for GPU acceleration) | |
| - Python 3.8+ | |
| - Node.js 16+ (for the Decentralized Internet SDK) | |
| - BOINC client/server software | |
| ### Build Instructions | |
| ```bash | |
| # Clone the repository | |
| git clone https://huggingface.co/OpenPeerAI/DockingAtHOME | |
| cd DockingAtHOME | |
| # Initialize submodules | |
| git submodule update --init --recursive | |
| # Build the project | |
| mkdir build && cd build | |
| cmake .. | |
| make -j$(nproc) | |
| # Install | |
| sudo make install | |
| ``` | |
| ### Docker Installation | |
| ```bash | |
| docker pull your-org/docking-at-home:latest | |
| docker run -d --gpus all your-org/docking-at-home:latest | |
| ``` | |
| ## Quick Start | |
| ### Web GUI (Recommended!) | |
| ```bash | |
| # Install dependencies | |
| pip install -r requirements.txt | |
| # Start the GUI server | |
| python start.py | |
| # Open browser to: http://localhost:8080 | |
| ``` | |
| The GUI provides: | |
| - 🖱️ **Drag-and-drop** file upload | |
| - 📊 **Real-time** progress monitoring | |
| - 📈 **Live statistics** dashboard | |
| - 🎯 **Interactive** job management | |
| - 📱 **Responsive** design | |
| ### Command Line | |
| ```bash | |
| # Run docking from terminal | |
| docking-at-home dock -l molecule.pdbqt -r protein.pdbqt | |
| # Start server | |
| docking-at-home server --port 8080 | |
| # Start worker | |
| docking-at-home worker --local | |
| ``` | |
| ### Python API | |
| ```python | |
| from docking_at_home.server import job_manager, initialize_server | |
| import asyncio | |
| async def main(): | |
| await initialize_server() | |
| job_id = await job_manager.submit_job( | |
| ligand_file="molecule.pdbqt", | |
| receptor_file="protein.pdbqt", | |
| num_runs=100, | |
| use_gpu=True | |
| ) | |
| # Monitor progress | |
| while True: | |
| job = job_manager.get_job(job_id) | |
| if job["status"] == "completed": | |
| print(f"Best energy: {job['results']['best_energy']}") | |
| break | |
| await asyncio.sleep(1) | |
| asyncio.run(main()) | |
| ``` | |
| ### Running on Localhost | |
| ```bash | |
| # Start the local server | |
| docking-at-home server --port 8080 | |
| # In another terminal, run the worker | |
| docking-at-home worker --local | |
| ``` | |
| ## Configuration | |
| Configuration files are located in `config/`: | |
| - `autodock.conf` - AutoDock parameters | |
| - `boinc_server.conf` - BOINC server settings | |
| - `gpu_config.conf` - CUDPP and GPU settings | |
| - `decentralized.conf` - Distributed Network Settings | |
| - `cloud_agents.conf` - AI orchestration parameters | |
| ## API Documentation | |
| Full API documentation is available at [docs/API.md](docs/API.md) | |
| ## Performance | |
| On a typical configuration: | |
| - **CPU-only**: ~100 docking runs/hour | |
| - **Single GPU (RTX 3090)**: ~2,000 docking runs/hour | |
| - **Distributed (1000 nodes)**: ~100,000+ docking runs/hour | |
| ## Use Cases | |
| - 🔬 Drug Discovery and Virtual Screening | |
| - 🧪 Protein-Ligand Binding Studies | |
| - 📚 Large-Scale Chemical Library Screening | |
| - 🎓 Educational Computational Chemistry | |
| - 🌍 Pandemic Response (e.g., COVID-19 drug discovery) | |
| ## Contributing | |
| We welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines. | |
| ## License | |
| This project is licensed under the GNU General Public License v3.0 - see [LICENSE](LICENSE) for details. | |
| Individual components retain their original licenses: | |
| - AutoDock: GNU GPL v2 | |
| - BOINC: GNU LGPL v3 | |
| - CUDPP: BSD License | |
| ## Citation | |
| If you use Docking@HOME in your research, please cite: | |
| ```bibtex | |
| @software{docking_at_home_2025, | |
| title={Docking@HOME: A Distributed Platform for Molecular Docking}, | |
| author={OpenPeer AI and Riemann Computing Inc. and Bleunomics and Andrew Magdy Kamal}, | |
| year={2025}, | |
| url={https://huggingface.co/OpenPeerAI/DockingAtHOME} | |
| } | |
| ``` | |
| ## HuggingFace Integration | |
| Model cards and datasets are available at: | |
| - 🤗 [https://huggingface.co/OpenPeerAI/DockingAtHOME](https://huggingface.co/OpenPeerAI/DockingAtHOME) | |
| ## Support | |
| - 📧 Email: andrew@bleunomics.com | |
| - � Issues: [HuggingFace Issues](https://huggingface.co/OpenPeerAI/DockingAtHOME/discussions) | |
| - 🤗 Community: [HuggingFace Discussions](https://huggingface.co/OpenPeerAI/DockingAtHOME/discussions) | |
| ## Acknowledgments | |
| - The AutoDock development team at The Scripps Research Institute | |
| - BOINC project at UC Berkeley | |
| - CUDPP developers | |
| - Lonero Team for the Decentralized Internet SDK | |
| - OpenPeer AI for Cloud Agents framework | |
| --- | |
| **Made with ❤️ by the open-source computational chemistry community** | |