TLigBind: Molecular Docking Web Platform
Python
AWS
Streamlit
Docker
CI/CD
The Problem
Molecular docking is a critical step in drug discovery, but existing tools require local installation of complex software (AutoDock Vina, RDKit, PDBQT preparation tools) and command-line expertise. Researchers without computational backgrounds were blocked from running docking experiments independently.
What I Built
A full-stack web application that lets researchers upload receptor and ligand files, configure docking parameters, and retrieve results through a browser. No local installation required.
Key Features
- Automated ligand preparation: SMILES/SDF to PDBQT conversion with RDKit 3D embedding and MMFF94 minimization
- Receptor preparation: PDB chain selection, AlphaFold DB fetch by UniProt ID, 3D viewer
- Parallel docking: Multi-ligand jobs processed concurrently with progress tracking
- Job queue system: Background workers process jobs asynchronously; users return later for results
- Community receptor library: Researchers submit and share prepared receptor files
- User authentication: Self-registration, role-based access, admin panel with audit logging
Architecture
| Component | Technology |
| Frontend | Streamlit (Python) |
| Docking Engine | AutoDock Vina 1.2.5 |
| Chemistry | RDKit, Meeko, py3Dmol |
| Compute | AWS Fargate |
| Storage | AWS EFS (persistent across deploys) |
| Load Balancer | AWS ALB |
| Container Registry | AWS ECR |
| CI/CD | GitHub Actions (build, push, deploy on merge to main) |
Security Hardening
- Path traversal protection on all file parameters
- Brute-force login protection
- PDBQT content validation on uploads
- Non-root container execution
- Session expiry and signed cookies
- Worker crash circuit breaker
Validation
Built a redocking validation framework with quantitative success criteria. Reproduced known crystal structure binding poses with 75% accuracy, confirming the pipeline produces scientifically meaningful results.
Status
Live at tligbind.trinhlaboratory.com. Manuscript in preparation for publication (August 2026). Built as part of the Trinh Laboratory at the University of Virginia.
What I Would Improve
- Add GPU-accelerated docking (Vina-GPU) for large virtual screens
- Implement result caching for repeated receptor-ligand pairs
- Add Kubernetes autoscaling for burst workloads during class projects
- Replace file-based job queue with Redis or SQS for better reliability