{"id":26436324,"url":"https://github.com/chenxingqiang/boltz-service","last_synced_at":"2026-05-18T02:10:16.414Z","repository":{"id":263791152,"uuid":"891399343","full_name":"chenxingqiang/boltz-service","owner":"chenxingqiang","description":"the service version for boltz-1 focusing on Dependencies, Run the inference service, Roadmap, Common, Or for x86_64.","archived":false,"fork":false,"pushed_at":"2025-12-23T11:35:26.000Z","size":2177,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-24T09:53:07.521Z","etag":null,"topics":["academic","ai","api","boltz","cli","deep-learning","dockerfile","framework","python","research","service","shell","tool"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chenxingqiang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-11-20T09:11:12.000Z","updated_at":"2025-12-23T11:35:29.000Z","dependencies_parsed_at":"2024-11-20T11:34:45.517Z","dependency_job_id":"6a2226bb-697f-49c5-bb00-bdfb1c372158","html_url":"https://github.com/chenxingqiang/boltz-service","commit_stats":null,"previous_names":["chenxingqiang/boltz-service"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/chenxingqiang/boltz-service","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chenxingqiang%2Fboltz-service","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chenxingqiang%2Fboltz-service/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chenxingqiang%2Fboltz-service/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chenxingqiang%2Fboltz-service/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chenxingqiang","download_url":"https://codeload.github.com/chenxingqiang/boltz-service/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chenxingqiang%2Fboltz-service/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33162448,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-17T22:39:12.733Z","status":"online","status_checked_at":"2026-05-18T02:00:06.436Z","response_time":71,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["academic","ai","api","boltz","cli","deep-learning","dockerfile","framework","python","research","service","shell","tool"],"created_at":"2025-03-18T08:16:16.672Z","updated_at":"2026-05-18T02:10:16.408Z","avatar_url":"https://github.com/chenxingqiang.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Boltz Service\n\n[![GitHub](https://img.shields.io/github/license/chenxingqiang/boltz-service)](https://github.com/chenxingqiang/boltz-service/blob/main/LICENSE)\n[![Docker Hub](https://img.shields.io/docker/pulls/xingqiangchen/boltz-service)](https://hub.docker.com/r/xingqiangchen/boltz-service)\n[![Python Version](https://img.shields.io/badge/python-3.9%2B-blue)](https://www.python.org/downloads/)\n[![PyTorch](https://img.shields.io/badge/PyTorch-2.1%2B-red)](https://pytorch.org/)\n\nA high-performance protein structure prediction microservice with cloud-native deployment support. Supports both **Boltz-1** and **Boltz-2** models.\n\n## Features\n\n- State-of-the-art protein structure prediction\n- Cloud deployment support (AWS \u0026 Aliyun)\n- GPU acceleration\n- Multiple Sequence Alignment (MSA) generation\n- Comprehensive monitoring\n\n## Installation\n\n```bash\ngit clone https://github.com/chenxingqiang/boltz-service.git\ncd boltz-service\npip install -r requirements.txt\n```\n\n## Quick Start\n\n1. Set environment variables:\n```bash\nexport BOLTZ_CACHE_DIR=/path/to/cache\nexport BOLTZ_MODEL_DIR=/path/to/models\nexport BOLTZ_BFD_PATH=/path/to/bfd\nexport BOLTZ_UNIREF_PATH=/path/to/uniref\n```\n\n2. Start the service:\n```bash\npython -m boltz.main serve \\\n    --host 0.0.0.0 \\\n    --port 50051 \\\n    --workers 10 \\\n    --cache ~/.boltz \\\n    --devices 1 \\\n    --accelerator gpu\n```\n\n## Roadmap\n\n- [x] Basic protein structure prediction\n- [x] MSA generation support\n- [x] Cloud deployment (AWS/Aliyun)\n- [x] GPU acceleration\n- [-] Support for custom paired MSA\n- [ ] Pocket conditioning support\n- [ ] More examples\n- [ ] Full data processing pipeline\n- [ ] Colab notebook for inference\n- [ ] Confidence model checkpoint\n- [ ] Kernel integration\n\n## License\n\nOur model and code are released under MIT License, and can be freely used for both academic and commercial purposes.\n\n## Links\n\n- [GitHub Repository](https://github.com/chenxingqiang/boltz-service)\n- [API Documentation](docs/API.md)\n- [Contributing Guide](CONTRIBUTING.md)\n- [Issue Tracker](https://github.com/chenxingqiang/boltz-service/issues)\n\n## Architecture\n\n### MSA Service\n\nThe Multiple Sequence Alignment (MSA) service is a key component of the Boltz architecture, implemented as a gRPC-based microservice. It provides efficient sequence alignment capabilities with the following features:\n\n- **Asynchronous Processing**: Handles long-running MSA tasks efficiently using asyncio\n- **Distributed Caching**: Uses Redis for caching results and improving performance\n- **Batch Processing**: Supports processing multiple sequences in parallel\n- **Status Monitoring**: Real-time status updates for MSA generation tasks\n- **Configurable Options**: Flexible configuration for sequence identity, iteration count, etc.\n\nKey endpoints:\n- `GenerateMSA`: Generate MSA for a single protein sequence\n- `BatchGenerateMSA`: Process multiple sequences in batch\n- `GetMSAStatus`: Check the status of MSA generation tasks\n\nDefault configuration:\n- Max Sequences: 1000\n- Sequence Identity Range: 30-90%\n- Iteration Count: 3\n- Supported Databases: BFD, UniRef90\n\n### System Requirements\n\n- Python 3.8 or higher\n- Redis server (for MSA service caching)\n- CUDA-compatible GPU (recommended for inference)\n\n### Dependencies\n\nCore dependencies:\n```\ngrpcio\u003e=1.54.2\ngrpcio-tools\u003e=1.54.2\nprotobuf\u003e=4.23.2\nnumpy\u003e=1.21.0\ntorch\u003e=2.0.0\n```\n\nFor a complete list of dependencies, see `requirements.txt`.\n\n## Service Deployment\n\n### Local Deployment\n\nRun the service locally:\n```bash\npython -m boltz.service.main\n```\n\n### Docker Deployment\n\n#### Pre-built Images (Recommended)\n\nPull pre-built images from [Docker Hub](https://hub.docker.com/r/xingqiangchen/boltz-service):\n\n| Tag | Model | Size | Description |\n|-----|-------|------|-------------|\n| `v1` / `boltz1` | Boltz-1 | ~15GB | Boltz-1 model with all dependencies |\n| `v2` / `boltz2` | Boltz-2 | ~14GB | Boltz-2 model with affinity prediction |\n| `latest` | Boltz-1 | ~15GB | Default (same as v1) |\n| `latest-slim` | None | ~7.5GB | Downloads model on first run |\n\n```bash\n# Boltz-1 (recommended for general use)\ndocker pull xingqiangchen/boltz-service:v1\n\n# Boltz-2 (with affinity prediction)\ndocker pull xingqiangchen/boltz-service:v2\n\n# Slim version (downloads model on first run)\ndocker pull xingqiangchen/boltz-service:latest-slim\n```\n\n#### Run the Service\n\n```bash\n# Run Boltz-1 model\ndocker run -d --gpus all \\\n  -p 50051:50051 \\\n  --name boltz-service \\\n  xingqiangchen/boltz-service:v1\n\n# Run Boltz-2 model\ndocker run -d --gpus all \\\n  -p 50051:50051 \\\n  --name boltz-service \\\n  xingqiangchen/boltz-service:v2\n\n# Run slim version with external model\ndocker run -d --gpus all \\\n  -p 50051:50051 \\\n  -v /path/to/models:/data/models \\\n  --name boltz-service \\\n  xingqiangchen/boltz-service:latest-slim\n```\n\nFor detailed Docker documentation, see [Docker Guide](docs/docker.md).\n\n#### Build from Source\n\n```bash\n# Build Boltz-1 image\ndocker build -f docker/Dockerfile.boltz1 -t boltz-service:v1 .\n\n# Build Boltz-2 image\ndocker build -f docker/Dockerfile.boltz2 -t boltz-service:v2 .\n\n#### Docker Compose\nFor local development and testing, you can use Docker Compose to run all services:\n\n```bash\ndocker-compose up -d\n```\n\nThe services will be available at:\n- Training Service: `localhost:50052`\n- MSA Service: `localhost:50053`\n- Inference Service: `localhost:50051`\n\n#### Environment Variables\n\nThe following environment variables can be configured for the Docker containers:\n\n```bash\n# Common\nPYTHONPATH=/app\nWANDB_SILENT=true\n\n# Training Service\nDATA_PATH=/app/data\nCHECKPOINT_PATH=/app/checkpoints\nMODEL_PATH=/app/models\n\n# MSA Service\nBOLTZ_BFD_PATH=/data/bfd\nBOLTZ_CACHE_DIR=/data/cache\n\n# Inference Service\nBOLTZ_MODEL_DIR=/app/models\n```\n\n#### GPU Support\n\nAll services support GPU acceleration. Make sure you have the NVIDIA Container Toolkit installed:\n```bash\n# Install NVIDIA Container Toolkit\ndistribution=$(. /etc/os-release;echo $ID$VERSION_ID)\ncurl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -\ncurl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list\n\nsudo apt-get update\nsudo apt-get install -y nvidia-docker2\nsudo systemctl restart docker\n```\n\nThen run the containers with `--gpus all` flag as shown in the examples above.\n\n### Cloud Deployment\n\n#### AWS EKS Deployment\n1. Create EKS cluster:\n```bash\neksctl create cluster --name boltz-cluster --region your-region\n```\n\n2. Deploy the service:\n```bash\nkubectl apply -f k8s/aws/\n```\n\n#### AWS ECS Deployment\n1. Create ECS cluster through AWS Console or CLI\n2. Push Docker image to ECR:\n```bash\naws ecr create-repository --repository-name boltz-service\naws ecr get-login-password | docker login --username AWS --password-stdin $AWS_ACCOUNT.dkr.ecr.$AWS_REGION.amazonaws.com\ndocker tag boltz-service:latest $AWS_ACCOUNT.dkr.ecr.$AWS_REGION.amazonaws.com/boltz-service:latest\ndocker push $AWS_ACCOUNT.dkr.ecr.$AWS_REGION.amazonaws.com/boltz-service:latest\n```\n\n#### Aliyun Kubernetes Deployment\n1. Deploy using the provided script:\n```bash\nchmod +x scripts/deploy.sh\n./scripts/deploy.sh\n```\n\n## Monitoring and Scaling\n\n### AWS CloudWatch Integration\n- Service metrics and logs are automatically sent to CloudWatch\n- Set up alarms and dashboards through AWS Console\n- Configure auto-scaling based on metrics\n\n### Aliyun Monitoring\n- Monitor through Aliyun Container Service console\n- Configure auto-scaling policies\n- View service logs and metrics\n\n## API Reference\n\nThe service exposes a gRPC API for protein structure prediction:\n\n```protobuf\nservice BoltzService {\n  rpc PredictStructure(PredictRequest) returns (PredictResponse);\n  rpc GenerateMSA(MSARequest) returns (MSAResponse);\n}\n```\n\nFor detailed API documentation, see [API Reference](docs/API.md).\n\n### Quick API Example\n\n```python\nimport grpc\nfrom boltz_service.protos import inference_service_pb2, inference_service_pb2_grpc\n\nchannel = grpc.insecure_channel('localhost:50051')\nstub = inference_service_pb2_grpc.InferenceServiceStub(channel)\n\nrequest = inference_service_pb2.PredictionRequest(\n    job_id=\"prediction-001\",\n    sequence=\"MVKVGVNG\",\n    recycling_steps=3,\n    sampling_steps=200,\n    output_format=\"mmcif\"\n)\n\nresponse = stub.PredictStructure(request)\nprint(f\"Status: {response.status}\")\n```\n\n## Contributing\n\nWe welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details on:\n\n- Development setup\n- Coding standards\n- Testing guidelines\n- Pull request process\n\nQuick start:\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'feat: add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Create a Pull Request\n\n## Citation\n\nIf you use this software in your research, please cite:\n\n```bibtex\n@software{boltz2023,\n  author = {Chen, Xingqiang},\n  title = {Boltz Service: High-Performance Protein Structure Prediction},\n  year = {2024},\n  publisher = {GitHub},\n  url = {https://github.com/chenxingqiang/boltz-service}\n}\n```\n\n## Acknowledgments\n\n- [Boltz Team](https://github.com/jwohlwend/boltz) for their groundbreaking work on protein structure prediction:\n  * [Giacomo Corso](https://github.com/gcorso)\n  * [Jordan Wohlwend](https://github.com/jwohlwend)\n  * [Bowen Jing](https://github.com/bowenjing)\n  * [Bonnie Berger](https://people.csail.mit.edu/bab/)\n  * Original Paper: [Democratizing Biomolecular Interaction Modeling](https://gcorso.github.io/assets/boltz1.pdf)\n- [PyTorch](https://pytorch.org/) for the deep learning framework\n- [HHblits](https://github.com/soedinglab/hh-suite) for MSA generation\n- The protein structure prediction community for their research and contributions\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchenxingqiang%2Fboltz-service","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchenxingqiang%2Fboltz-service","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchenxingqiang%2Fboltz-service/lists"}