A molecular docking platform that enables protein-ligand docking analysis and molecular dynamics preparation.
- PDB structure loading (via PDB ID or file upload)
- Co-crystallized ligand analysis and visualization
- Active site identification
- Molecular docking using AutoDock Vina
- Results download and molecular dynamics preparation
dynamic_dock/
├── frontend/ # React frontend application
├── backend/ # Python FastAPI backend
├── vina/ # AutoDock Vina executable
└── README.md # This file
- Operating System: macOS, Linux, or Windows (with WSL2)
- Python: 3.8 or higher
- Node.js: 16.x or higher
- npm: 8.x or higher
- Memory: Minimum 4GB RAM (8GB recommended)
- Storage: At least 2GB free space
macOS (using Homebrew):
brew install python@3.9Ubuntu/Debian:
sudo apt update
sudo apt install python3.9 python3.9-pip python3.9-venvWindows: Download and install from python.org
macOS (using Homebrew):
brew install nodeUbuntu/Debian:
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejsWindows: Download and install from nodejs.org
curl -sSL https://install.python-poetry.org | python3 -Add Poetry to your PATH (restart terminal after):
export PATH="$HOME/.local/bin:$PATH"git clone https://github.com/your-username/Dynamic_Dock.git
cd Dynamic_Dock/Dynamic_DockOption A: Using Poetry (Recommended)
- Navigate to the backend directory:
cd backend- Install Python dependencies using Poetry:
poetry install- Activate the virtual environment:
poetry shell- Verify installation:
poetry run python -c "import rdkit, biopython; print('Dependencies installed successfully')"Option B: Using pip (Alternative)
- Navigate to the backend directory:
cd backend- Create and activate a virtual environment:
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install dependencies using pip:
pip install -r requirements.txtconda install -c conda-forge rdkit biopython numpy
pip install fastapi uvicorn python-multipart pydantic python-dotenv requests starlette typing-extensions- Verify installation:
python -c "import rdkit, biopython; print('Dependencies installed successfully')"- Navigate to the frontend directory (from the root directory):
cd ../frontend- Install Node.js dependencies:
npm install- Verify installation:
npm --version
node --versionThe project includes a pre-compiled AutoDock Vina executable in the vina/ directory.
For macOS users:
The executable vina/autodock_vina_1_1_2_mac_catalina_64bit/ is already included.
For Linux/Windows users:
Download the appropriate version from AutoDock Vina and place it in the vina/ directory.
Make the executable executable (Linux/macOS):
chmod +x vina/vinaFrom the root directory (Dynamic_Dock/):
npm startThis will start both the frontend and backend simultaneously.
Using Poetry: Terminal 1 - Start Backend:
cd backend
poetry shell
poetry run uvicorn app.main:app --host 0.0.0.0 --port 8000 --reloadTerminal 2 - Start Frontend:
cd frontend
npm startUsing pip: Terminal 1 - Start Backend:
cd backend
source venv/bin/activate # On Windows: venv\Scripts\activate
uvicorn app.main:app --host 0.0.0.0 --port 8000 --reloadTerminal 2 - Start Frontend:
cd frontend
npm start- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- API Documentation: http://localhost:8000/docs
-
Poetry not found:
- Ensure Poetry is installed and in your PATH
- Restart your terminal after installation
-
RDKit installation fails:
- RDKit requires conda on some systems. Consider using Miniconda:
conda install -c conda-forge rdkit
- Or use the pip alternative mentioned in Step 2
-
Port already in use:
- Kill processes using ports 3000 or 8000:
lsof -ti:3000 | xargs kill -9 lsof -ti:8000 | xargs kill -9
-
Permission denied on Vina executable:
chmod +x vina/vina
-
Node.js version incompatible:
- Use nvm to manage Node.js versions:
nvm install 18 nvm use 18
Check Python dependencies:
Using Poetry:
cd backend
poetry run python -c "import fastapi, uvicorn, biopython, rdkit; print('All dependencies OK')"Using pip:
cd backend
source venv/bin/activate # On Windows: venv\Scripts\activate
python -c "import fastapi, uvicorn, biopython, rdkit; print('All dependencies OK')"Check Node.js dependencies:
cd frontend
npm list --depth=0Backend tests:
Using Poetry:
cd backend
poetry run pytestUsing pip:
cd backend
source venv/bin/activate # On Windows: venv\Scripts\activate
pytestFrontend tests:
cd frontend
npm testBackend:
Using Poetry:
cd backend
poetry run black .
poetry run isort .Using pip:
cd backend
source venv/bin/activate # On Windows: venv\Scripts\activate
black .
isort .Frontend:
cd frontend
npm run lint- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Make your changes and test thoroughly
- Submit a pull request
MIT
For issues and questions:
- Create an issue on GitHub
- Check the troubleshooting section above
- Ensure all prerequisites are properly installed