Mentors4EDU's picture
Upload 42 files
35aaa09 verified
# Example Files for Docking@HOME
This directory contains example ligand and receptor files in PDBQT format for testing the Docking@HOME platform.
## Files
### `example_ligand.pdbqt`
- **Type**: Small molecule ligand
- **Format**: PDBQT (AutoDock format with partial charges and atom types)
- **Rotatable Bonds**: 2
- **Atoms**: 5
- **Purpose**: Simple test ligand for quick docking runs
### `example_receptor.pdbqt`
- **Type**: Protein receptor
- **Format**: PDBQT
- **Residues**: 4 (ALA, GLY, VAL, LEU)
- **Atoms**: 24
- **Purpose**: Simple test receptor for demonstration
## How to Use
### Web GUI
1. Start the server:
```bash
python start.py
```
2. Open browser to `http://localhost:8080`
3. Upload files:
- Click "Choose File" for Ligand → Select `example_ligand.pdbqt`
- Click "Choose File" for Receptor → Select `example_receptor.pdbqt`
4. Configure parameters:
- Runs: 100 (or your choice)
- GPU: Enable if available
5. Click "🚀 Start Docking"
### Command Line
```bash
docking-at-home dock \
-l examples/example_ligand.pdbqt \
-r examples/example_receptor.pdbqt \
-n 100 \
--gpu
```
### 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="examples/example_ligand.pdbqt",
receptor_file="examples/example_receptor.pdbqt",
num_runs=100,
use_gpu=True
)
print(f"Job submitted: {job_id}")
asyncio.run(main())
```
## Expected Results
When running docking with these example files, you should expect:
- **Binding Energies**: -12 to -6 kcal/mol (simulation mode)
- **Poses**: As many as requested runs
- **Execution Time**:
- Simulation mode: ~1-2 seconds for 100 runs
- Real AutoDock (CPU): ~30-60 minutes for 100 runs
- Real AutoDock (GPU): ~2-5 minutes for 100 runs
## Converting Your Own Files
These example files are in PDBQT format. To convert your own PDB files:
### Using AutoDockTools (Python 2.7)
```bash
# Install AutoDockTools
pip install numpy
# Download from: http://autodock.scripps.edu/downloads
# Prepare ligand
pythonsh prepare_ligand4.py -l molecule.pdb -o molecule.pdbqt
# Prepare receptor
pythonsh prepare_receptor4.py -r protein.pdb -o protein.pdbqt
```
### Using Open Babel
```bash
# Install Open Babel
# Ubuntu/Debian: sudo apt-get install openbabel
# Mac: brew install open-babel
# Windows: Download from http://openbabel.org/
# Convert ligand (add hydrogens and charges)
obabel molecule.pdb -O molecule.pdbqt -h --partialcharge gasteiger
# Convert receptor
obabel protein.pdb -O protein.pdbqt -h
```
### Using PyMOL
```python
# In PyMOL
load molecule.pdb
h_add
save molecule.pdbqt
```
## File Format Details
### PDBQT Format
PDBQT is an extension of PDB format that includes:
- **Atom types** (C.3, N.pl3, O.2, etc.)
- **Partial charges** (Gasteiger or other methods)
- **Rotatable bonds** (TORSDOF)
- **Flexible residues** (for receptor flexibility)
### Example PDBQT Structure:
```
REMARK Name = Example Ligand
REMARK 2 active torsions
ROOT
ATOM 1 C UNL 1 0.000 0.000 0.000 0.00 0.00 +0.000 C
ATOM 2 C UNL 1 1.540 0.000 0.000 0.00 0.00 +0.000 C
ENDROOT
BRANCH 2 3
ATOM 3 C UNL 1 2.078 1.421 0.000 0.00 0.00 +0.000 C
ENDBRANCH 2 3
TORSDOF 2
```
Key elements:
- `REMARK`: Comments and metadata
- `ROOT/ENDROOT`: Non-rotatable core structure
- `BRANCH/ENDBRANCH`: Rotatable bonds
- `TORSDOF`: Number of rotatable bonds (degrees of freedom)
- Coordinates: X, Y, Z in Ångströms
- Charges: Partial atomic charges
## More Examples
For more example structures:
1. **PDB Database**: https://www.rcsb.org/
- Download crystal structures
- Convert to PDBQT
2. **PubChem**: https://pubchem.ncbi.nlm.nih.gov/
- Download small molecules
- Convert to PDBQT
3. **AutoDock Website**: https://autodock.scripps.edu/
- Example files
- Tutorials
- Documentation
## Troubleshooting
### File Not Recognized?
Make sure your PDBQT file has:
- `.pdbqt` extension
- Proper ATOM/HETATM records
- Gasteiger charges
- Correct atom types
### Invalid Coordinates?
Check that:
- Coordinates are in Ångströms
- Values are reasonable (not NaN or infinity)
- Structure is 3D (not 2D)
### Missing Charges?
Add charges using:
```bash
obabel input.pdb -O output.pdbqt --partialcharge gasteiger
```
## Support
- 📧 Email: [email protected]
- 🤗 Issues: https://huggingface.co/OpenPeerAI/DockingAtHOME/discussions
- 📚 AutoDock Docs: https://autodock.scripps.edu/
---
**Authors**: OpenPeer AI, Riemann Computing Inc., Bleunomics, Andrew Magdy Kamal