DockingAtHOME / README.md
Mentors4EDU's picture
Upload 42 files
35aaa09 verified
|
raw
history blame
9.29 kB

Docking@HOME

Distributed and Parallel Molecular Docking Platform

License: GPL v3 [![BOINC](https://img.shields```bibtex @software{docking_at_home_2025, title={Docking@HOME: Distributed Molecular Docking Platform}, author={OpenPeer AI and Riemann Computing Inc. and Bleunomics and Andrew Magdy Kamal}, year={2025}, url={https://huggingface.co/OpenPeerAI/DockingAtHOME} }

[![HuggingFace](https://img.shields.io/badge/%F0%9F%A4%97-Models-yellow)](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

docker pull your-org/docking-at-home:latest
docker run -d --gpus all your-org/docking-at-home:latest

Quick Start

Web GUI (Recommended!)

# 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

# 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

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

# 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

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 for guidelines.

License

This project is licensed under the GNU General Public License v3.0 - see 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:

@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:

Support

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