AlphaFind Annotator: A protein structure annotation application for GROMACS molecular dynamics files.
AlphaFind Annotator is a full-stack web application that enables researchers to upload GROMACS topology files (TPR/GRO) and automatically identify proteins through dual analysis approaches: structural similarity via AlphaFind and sequence similarity via BLAST.
- 𧬠Dual Analysis Engine: Combines structural (AlphaFind) and sequence (BLAST) similarity analysis
- π Format Support: TPR file format with automatic conversion
- π Modern Web Interface: React TypeScript frontend with responsive Bootstrap UI
- π RESTful API: Comprehensive REST API for automation and integration
- π Production Ready: Docker and Kubernetes deployment configurations
- π Rich Results: Detailed protein matches with UniProt integration and 3D visualization
- π Secure: Built-in file validation, rate limiting, and automatic cleanup
- π± Mobile Friendly: Responsive design that works on all devices
graph TB
subgraph "User Interface"
UI[React Frontend<br/>TypeScript + Bootstrap]
UPLOAD[File Upload<br/>TPR/GRO/PDB]
end
subgraph "API Layer"
API[Flask REST API<br/>Python Backend]
CONV[File Conversion<br/>GROMACS gmx]
CACHE[File Cache<br/>UUID-based]
end
subgraph "Analysis Engines"
AF[AlphaFind API<br/>Structural Similarity]
BLAST[BLAST<br/>Sequence Similarity]
BIO[BioPython<br/>Structure Processing]
end
subgraph "External Services"
UNIPROT[UniProt Database<br/>Protein Information]
ALPHAFIND[AlphaFind Database<br/>3D Structures]
MOL[Mol* Viewer<br/>3D Visualization]
end
UI --> UPLOAD
UPLOAD --> API
API --> CONV
API --> CACHE
CONV --> BIO
BIO --> AF
BIO --> BLAST
AF --> ALPHAFIND
BLAST --> UNIPROT
API --> UI
UI --> MOL
sequenceDiagram
participant User
participant Frontend
participant API
participant GROMACS
participant AlphaFind
participant BLAST
participant UniProt
User->>Frontend: Upload TPR/GRO file
Frontend->>API: POST /api/annotate
API->>GROMACS: Convert to PDB
GROMACS-->>API: PDB structure
par Structural Analysis
API->>AlphaFind: Search similar structures
AlphaFind-->>API: TM-scores, alignments
and Sequence Analysis
API->>BLAST: Search similar sequences
BLAST->>UniProt: Query protein database
UniProt-->>BLAST: Protein matches
BLAST-->>API: Identity scores, alignments
end
API-->>Frontend: Combined results
Frontend-->>User: Display ranked proteins
User->>Frontend: Download PDB/annotations
- Python 3.6+ with pip
- Node.js 16+ with npm (for frontend development)
- GROMACS installed and
gmxcommand available in PATH - Docker (optional, for containerized deployment)
- Kubernetes (optional, for production deployment)
# Clone the repository
git clone https://github.com/your-org/alphafind-annotator.git
cd alphafind-annotator
# Start all services
docker-compose up -d
# Access the application
open http://localhost:3000- Backend Setup:
cd api
pip install -r api/requirements.txt
cp config.env.template config.env
# Edit config.env with your settings
python api/simple_app.py- Frontend Setup:
cd ui
npm install
npm start- Access the application at
http://localhost:3000
alphafind-annotator/
βββ api/ # Backend API (Python Flask)
β βββ api/ # Core API modules
β βββ k8s/ # Backend Kubernetes manifests
β βββ manifests/ # Additional deployment configs
β βββ data/ # Sample data and uploads
βββ ui/ # Frontend (React TypeScript)
β βββ src/ # Source code
β βββ public/ # Static assets
β βββ k8s/ # Frontend Kubernetes manifests
βββ docs/ # Documentation
βββ deployment/ # Deployment configurations
See CONTRIBUTING.md for detailed development setup and guidelines.
cd api
pip install -r api/requirements.txt
python api/simple_app.pycd ui
npm install
npm start# Build images
docker build -f api/k8s/Dockerfile -t alphafind-annotator-api:latest ./api
docker build -f ui/k8s/Dockerfile -t alphafind-annotator-ui:latest ./ui
# Run with docker-compose
docker-compose -f docker-compose.prod.yml up -dSee DEPLOYMENT.md for comprehensive Kubernetes deployment guide.
# Deploy backend
kubectl apply -k api/k8s/
# Deploy frontend
kubectl apply -k ui/k8s/- User Manual - Comprehensive user guide
- API Documentation - REST API reference
- Architecture Guide - System design and components
- Deployment Guide - Production deployment instructions
- Contributing Guide - Development guidelines
AlphaFind Annotator addresses the need for automated protein identification in molecular dynamics simulations. By combining:
- Structural similarity analysis via AlphaFind's 3D structure database
- Sequence similarity analysis via BLAST against UniProt
- Automated file conversion from GROMACS formats to standard PDB
Researchers can quickly identify and annotate proteins in their simulation systems, facilitating hypothesis generation and validation in computational biology workflows.
A public instance is available at: https://alphafind-annotator.dyn.cloud.e-infra.cz/
- Visit the application URL
- Upload your TPR/GRO file or use the example file
- Click "Run Annotation" and wait for processing
- Download results and view protein matches
# Convert file to PDB
curl -X POST -F "file=@simulation.tpr" http://localhost:5000/api/convert
# Annotate with both structural and sequence analysis
curl -X POST -F "file=@simulation.tpr" "http://localhost:5000/api/annotate?limit=10"
# Sequence-only annotation
curl -X POST -F "file=@simulation.tpr" "http://localhost:5000/api/annotate-sequential?limit=5"We welcome contributions! Please see CONTRIBUTING.md for guidelines.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- AlphaFind - For structural similarity search capabilities
- BLAST/UniProt - For sequence similarity analysis
- GROMACS - For molecular dynamics file format support
- Mol* - For 3D structure visualization
- React and Flask communities for excellent frameworks
- Documentation: Check the docs directory
- Issues: Report bugs and request features via GitHub Issues
- Discussions: Join the community in GitHub Discussions
Built with β€οΈ for the computational biology community