boltz2-python-client 0.3.3__tar.gz → 0.5.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- boltz2_python_client-0.5.0/CHANGELOG.md +108 -0
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/LICENSE +1 -1
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/MANIFEST.in +4 -7
- boltz2_python_client-0.5.0/PKG-INFO +299 -0
- boltz2_python_client-0.5.0/README.md +253 -0
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/boltz2_client/__init__.py +34 -8
- boltz2_python_client-0.5.0/boltz2_client/__main__.py +13 -0
- boltz2_python_client-0.5.0/boltz2_client/a3m/__init__.py +48 -0
- boltz2_python_client-0.5.0/boltz2_client/a3m/converter.py +567 -0
- boltz2_python_client-0.5.0/boltz2_client/a3m/pairing.py +271 -0
- boltz2_python_client-0.5.0/boltz2_client/a3m/parser.py +868 -0
- boltz2_python_client-0.5.0/boltz2_client/a3m_to_csv_converter.py +28 -0
- boltz2_python_client-0.5.0/boltz2_client/cli/__init__.py +182 -0
- boltz2_python_client-0.5.0/boltz2_client/cli/info.py +217 -0
- boltz2_python_client-0.5.0/boltz2_client/cli/msa.py +844 -0
- boltz2_python_client-0.5.0/boltz2_client/cli/predict.py +881 -0
- boltz2_python_client-0.5.0/boltz2_client/cli/screen.py +142 -0
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/boltz2_client/client.py +262 -35
- boltz2_python_client-0.5.0/boltz2_client/data/__init__.py +7 -0
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/boltz2_client/exceptions.py +1 -1
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/boltz2_client/models.py +173 -73
- boltz2_python_client-0.5.0/boltz2_client/msa_search.py +604 -0
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/boltz2_client/multi_endpoint_client.py +14 -9
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/boltz2_client/utils.py +323 -2
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/boltz2_client/virtual_screening.py +11 -23
- boltz2_python_client-0.5.0/boltz2_python_client.egg-info/PKG-INFO +299 -0
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/boltz2_python_client.egg-info/SOURCES.txt +40 -33
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/boltz2_python_client.egg-info/requires.txt +9 -0
- boltz2_python_client-0.5.0/docs/a3m_to_multimer_msa.md +599 -0
- boltz2_python_client-0.5.0/docs/affinity_prediction.md +292 -0
- boltz2_python_client-0.3.3/ASYNC_GUIDE.md → boltz2_python_client-0.5.0/docs/async.md +2 -2
- boltz2_python_client-0.3.3/COVALENT_COMPLEX_GUIDE.md → boltz2_python_client-0.5.0/docs/covalent_complex.md +10 -9
- boltz2_python_client-0.5.0/docs/msa_search.md +446 -0
- boltz2_python_client-0.5.0/docs/multi_endpoint.md +488 -0
- boltz2_python_client-0.3.3/PARAMETERS.md → boltz2_python_client-0.5.0/docs/parameters.md +32 -25
- boltz2_python_client-0.5.0/docs/virtual_screening.md +327 -0
- boltz2_python_client-0.3.3/YAML_GUIDE.md → boltz2_python_client-0.5.0/docs/yaml.md +12 -10
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/examples/01_basic_protein_folding.py +4 -0
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/examples/02_protein_structure_prediction_with_msa.py +5 -1
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/examples/03_protein_ligand_complex.py +6 -6
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/examples/04_covalent_bonding.py +4 -0
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/examples/05_dna_protein_complex.py +4 -0
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/examples/06_yaml_configurations.py +7 -3
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/examples/07_advanced_parameters.py +15 -12
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/examples/08_affinity_prediction_simple.py +1 -1
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/examples/09_virtual_screening.py +1 -2
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/examples/10_msa_search_integration.py +7 -3
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/examples/11_msa_search_large_protein.py +4 -0
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/examples/12_msa_affinity_prediction.py +4 -0
- boltz2_python_client-0.3.3/examples/15_a3m_to_multimer_csv.py → boltz2_python_client-0.5.0/examples/13_a3m_to_multimer_csv.py +5 -1
- boltz2_python_client-0.5.0/examples/README.md +102 -0
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/examples/barnase_barstar_with_msa.py +7 -2
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/examples/cdk4_msa_affinity_example.py +7 -2
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/examples/comprehensive_multi_endpoint_demo.py +6 -2
- boltz2_python_client-0.5.0/examples/data/cdk2_target.txt +1 -0
- boltz2_python_client-0.5.0/examples/data/cdk4_msa_affinity/cdk4_palbociclib_results.json +23 -0
- boltz2_python_client-0.5.0/examples/data/kinase_y7w_affinity.json +10 -0
- boltz2_python_client-0.5.0/examples/data/test_msa_endpoint_curl.sh +35 -0
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/examples/msa_search_simple_demo.py +4 -0
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/examples/multi_endpoint_screening.py +5 -1
- boltz2_python_client-0.5.0/examples/notebooks/01_multimer_prediction.ipynb +687 -0
- boltz2_python_client-0.5.0/examples/notebooks/02_cdk4_msa_affinity_prediction.ipynb +1174 -0
- boltz2_python_client-0.5.0/examples/notebooks/03_colabfold_a3m_to_multimer.ipynb +658 -0
- boltz2_python_client-0.5.0/examples/notebooks/boltz2_comprehensive_demo.ipynb +34 -0
- boltz2_python_client-0.5.0/examples/notebooks/boltz2_demo.ipynb +1106 -0
- boltz2_python_client-0.5.0/examples/notebooks/boltz2_nim_DNA_Protein_Complex_example_py3Dmol.ipynb +937 -0
- boltz2_python_client-0.5.0/examples/notebooks/boltz2_nim_protein_ligand_covalent_complex_molstar_visualization.ipynb +736 -0
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/licenses/README.md +1 -0
- boltz2_python_client-0.5.0/licenses/aiohttp-LICENSE +13 -0
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/pyproject.toml +15 -5
- boltz2_python_client-0.5.0/tests/__init__.py +5 -0
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/tests/conftest.py +35 -22
- boltz2_python_client-0.5.0/tests/constants.py +18 -0
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/tests/test_a3m_to_csv_converter.py +13 -12
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/tests/test_basic.py +14 -14
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/tests/test_cli_multi_endpoint.py +88 -74
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/tests/test_comprehensive_stress.py +11 -56
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/tests/test_examples_syntax.py +24 -49
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/tests/test_integration_scenarios.py +66 -115
- boltz2_python_client-0.5.0/tests/test_live_endpoints.py +329 -0
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/tests/test_msa_search.py +30 -50
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/tests/test_multi_endpoint_functionality.py +59 -299
- boltz2_python_client-0.3.3/PKG-INFO +0 -740
- boltz2_python_client-0.3.3/README.md +0 -702
- boltz2_python_client-0.3.3/boltz2_client/__main__.py +0 -9
- boltz2_python_client-0.3.3/boltz2_client/a3m_to_csv_converter.py +0 -1738
- boltz2_python_client-0.3.3/boltz2_client/cli.py +0 -2028
- boltz2_python_client-0.3.3/boltz2_client/data/__init__.py +0 -3
- boltz2_python_client-0.3.3/boltz2_client/models_affinity.py +0 -46
- boltz2_python_client-0.3.3/boltz2_client/msa_search.py +0 -489
- boltz2_python_client-0.3.3/boltz2_python_client.egg-info/PKG-INFO +0 -740
- boltz2_python_client-0.3.3/examples/cdk4_msa_affinity/cdk4_direct.a3m +0 -202
- boltz2_python_client-0.3.3/examples/cdk4_msa_affinity/cdk4_msa.a3m +0 -2
- boltz2_python_client-0.3.3/examples/cdk4_msa_affinity/cdk4_simple.a3m +0 -202
- boltz2_python_client-0.3.3/examples/debug_msa_conversion.py +0 -201
- boltz2_python_client-0.3.3/examples/dimer_examples.py +0 -145
- boltz2_python_client-0.3.3/examples/fix_cdk4_msa_search.py +0 -201
- boltz2_python_client-0.3.3/examples/multimer_file_output_example.py +0 -119
- boltz2_python_client-0.3.3/examples/multimer_msa_example.py +0 -214
- boltz2_python_client-0.3.3/examples/quick_barnase_barstar.py +0 -76
- boltz2_python_client-0.3.3/examples/quick_barnase_barstar_msa.py +0 -157
- boltz2_python_client-0.3.3/examples/quick_gcn4_homodimer.py +0 -62
- boltz2_python_client-0.3.3/examples/quick_heterodimer_example.py +0 -57
- boltz2_python_client-0.3.3/examples/quick_msa_test.py +0 -51
- boltz2_python_client-0.3.3/examples/simple_dimer_examples.py +0 -125
- boltz2_python_client-0.3.3/examples/test_boltz2_server.py +0 -195
- boltz2_python_client-0.3.3/examples/test_cdk4_msa_fixed.py +0 -178
- boltz2_python_client-0.3.3/examples/test_cdk4_msa_simple.py +0 -73
- boltz2_python_client-0.3.3/examples/test_msa_a3m_simple.py +0 -165
- boltz2_python_client-0.3.3/examples/test_msa_endpoint.py +0 -76
- boltz2_python_client-0.3.3/examples/test_notebook_fixes.py +0 -98
- boltz2_python_client-0.3.3/tests/__init__.py +0 -1
- boltz2_python_client-0.3.3/tests/test_real_endpoints.py +0 -282
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/boltz2_client/data/speclist.txt +0 -0
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/boltz2_python_client.egg-info/dependency_links.txt +0 -0
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/boltz2_python_client.egg-info/entry_points.txt +0 -0
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/boltz2_python_client.egg-info/top_level.txt +0 -0
- {boltz2_python_client-0.3.3/examples → boltz2_python_client-0.5.0/examples/data}/msa-kras-g12c_combined.a3m +0 -0
- {boltz2_python_client-0.3.3/examples → boltz2_python_client-0.5.0/examples/data}/multi_protein_complex.yaml +0 -0
- {boltz2_python_client-0.3.3/examples → boltz2_python_client-0.5.0/examples/data}/protein_ligand.yaml +0 -0
- {boltz2_python_client-0.3.3/examples → boltz2_python_client-0.5.0/examples/data}/sars_cov2_mpro_nirmatrelvir.yaml +0 -0
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/licenses/PyYAML-LICENSE +0 -0
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/licenses/aiofiles-LICENSE +0 -0
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/licenses/click-LICENSE +0 -0
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/licenses/httpx-LICENSE +0 -0
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/licenses/py3Dmol-LICENSE +0 -0
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/licenses/pydantic-LICENSE +0 -0
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/licenses/rich-LICENSE +0 -0
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/licenses/typing-extensions-LICENSE +0 -0
- {boltz2_python_client-0.3.3 → boltz2_python_client-0.5.0}/setup.cfg +0 -0
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
## [0.5.0] - 2026-04-07
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
- AWS SageMaker endpoint support (`EndpointType.SAGEMAKER`, CLI `--endpoint-type sagemaker`, `--sagemaker-endpoint-name`, `--sagemaker-region`)
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
- **PocketConstraint API** now uses `Contact` objects (binder + contacts)
|
|
12
|
+
- **Parameter ranges:** `recycling_steps` 1–10, `diffusion_samples` 1–25
|
|
13
|
+
- **`write_full_pde`** support for full predicted distance error matrix output
|
|
14
|
+
- **`Ligand.id`** is optional
|
|
15
|
+
- Compatibility updates for **Boltz-2 NIM v1.6.0**
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
- Comprehensive test suite fixes and live endpoint tests
|
|
19
|
+
|
|
20
|
+
## [0.4.0] - 2025-11-01
|
|
21
|
+
|
|
22
|
+
### Added
|
|
23
|
+
- A3M to multimer MSA conversion utilities, `multimer-msa` and `convert-msa` CLI commands
|
|
24
|
+
- Example script `13_a3m_to_multimer_csv.py` and guides (`docs/a3m_to_multimer_msa.md`)
|
|
25
|
+
- Multimer notebooks (`01_multimer_prediction.ipynb`, `03_colabfold_a3m_to_multimer.ipynb`) and related example scripts
|
|
26
|
+
- `08_affinity_prediction_simple.py` as the maintained affinity example (with `kinase_y7w_affinity.json`)
|
|
27
|
+
|
|
28
|
+
### Changed
|
|
29
|
+
- Multi-endpoint client default load-balancing strategy documented as **least-loaded**; expanded multi-endpoint coverage across prediction APIs
|
|
30
|
+
- README and guides updated for v1.5 NIM parameter limits (recycling/diffusion), PAE/PDE output, and PDB export
|
|
31
|
+
|
|
32
|
+
### Documentation
|
|
33
|
+
- Multi-endpoint virtual screening guide and examples (`comprehensive_multi_endpoint_demo.py`, `multi_endpoint_screening.py`)
|
|
34
|
+
|
|
35
|
+
## [0.3.0] - 2025-09-11
|
|
36
|
+
|
|
37
|
+
### Added
|
|
38
|
+
- **GPU-accelerated MSA Search NIM Integration**:
|
|
39
|
+
- New `MSASearchClient` for direct MSA Search NIM interaction
|
|
40
|
+
- `MSAFormatConverter` for A3M, FASTA, and Stockholm format support
|
|
41
|
+
- `MSASearchIntegration` for Boltz-2 workflow integration
|
|
42
|
+
- **New Client Methods**:
|
|
43
|
+
- `configure_msa_search()` - Configure MSA Search NIM endpoint
|
|
44
|
+
- `search_msa()` - Standalone MSA search
|
|
45
|
+
- `predict_with_msa_search()` - Integrated MSA + structure prediction
|
|
46
|
+
- `predict_ligand_with_msa_search()` - MSA + ligand + affinity prediction
|
|
47
|
+
- `batch_msa_search()` - Batch processing for multiple sequences
|
|
48
|
+
- **CLI Commands**:
|
|
49
|
+
- `boltz2 msa-search` - Search and save MSA alignments
|
|
50
|
+
- `boltz2 msa-predict` - Combined MSA search + structure prediction
|
|
51
|
+
- `boltz2 msa-ligand` - MSA-guided ligand affinity prediction
|
|
52
|
+
- `--msa-file` option for existing MSA files
|
|
53
|
+
- **Examples**:
|
|
54
|
+
- `10_msa_search_integration.py` - Comprehensive MSA integration demo
|
|
55
|
+
- `11_msa_search_large_protein.py` - Large protein optimization
|
|
56
|
+
- `12_msa_affinity_prediction.py` - MSA-guided affinity prediction
|
|
57
|
+
- **Documentation**:
|
|
58
|
+
- New MSA Search Guide with complete usage examples
|
|
59
|
+
- Updated Affinity Prediction Guide with MSA-guided section
|
|
60
|
+
- Enhanced README with MSA integration examples
|
|
61
|
+
|
|
62
|
+
### Fixed
|
|
63
|
+
- Parameter naming consistency: `max_hits` → `max_msa_sequences`, `e_value_threshold` → `e_value`
|
|
64
|
+
- MSA file handling in `predict_protein_structure()` method
|
|
65
|
+
- Documentation inconsistencies and outdated examples
|
|
66
|
+
|
|
67
|
+
### Improved
|
|
68
|
+
- Better error handling for MSA Search API responses
|
|
69
|
+
- Retry logic for MSA Search requests
|
|
70
|
+
- More comprehensive test coverage
|
|
71
|
+
|
|
72
|
+
## [0.2.1] - 2025-08-14
|
|
73
|
+
|
|
74
|
+
### Added
|
|
75
|
+
- Complete multi-endpoint support for ALL Boltz2 NIM functionalities:
|
|
76
|
+
- `predict_protein_structure()` with MSA support
|
|
77
|
+
- `predict_protein_ligand_complex()` with affinity prediction
|
|
78
|
+
- `predict_covalent_complex()`
|
|
79
|
+
- `predict_dna_protein_complex()`
|
|
80
|
+
- `predict_with_advanced_parameters()`
|
|
81
|
+
- `predict_from_yaml_config()` and `predict_from_yaml_file()`
|
|
82
|
+
- New `msa` parameter in `predict_protein_structure()` for direct MSA input
|
|
83
|
+
- Comprehensive demo notebook (`examples/boltz2_comprehensive_demo.ipynb`) with:
|
|
84
|
+
- Single and multi-endpoint examples
|
|
85
|
+
- Both Python API and CLI demonstrations
|
|
86
|
+
- Advanced features and visualization
|
|
87
|
+
- `AlignmentFormat` export in `__init__.py`
|
|
88
|
+
|
|
89
|
+
### Fixed
|
|
90
|
+
- MSA support now correctly uses nested dictionary format `{database: {format: AlignmentFileRecord}}`
|
|
91
|
+
- CLI multi-endpoint initialization (removed incorrect `is_async` parameter)
|
|
92
|
+
- Multi-endpoint client MSA parameter passing
|
|
93
|
+
- YAML configuration MSA format handling
|
|
94
|
+
|
|
95
|
+
### Changed
|
|
96
|
+
- Updated README.md examples (removed `is_async=True` from MultiEndpointClient)
|
|
97
|
+
- Improved error handling in multi-endpoint operations
|
|
98
|
+
- Better organization of test scripts into `test_scripts/` directory
|
|
99
|
+
|
|
100
|
+
### Documentation
|
|
101
|
+
- New comprehensive demo notebook with complete examples
|
|
102
|
+
- Updated all guides for consistency
|
|
103
|
+
- Added troubleshooting tips for multi-endpoint usage
|
|
104
|
+
|
|
105
|
+
## [0.2.0] - Previous release
|
|
106
|
+
- Initial multi-endpoint support for virtual screening
|
|
107
|
+
- Basic affinity prediction features
|
|
108
|
+
- Virtual screening capabilities
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
3
|
+
Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
include README.md
|
|
2
2
|
include LICENSE
|
|
3
|
-
include
|
|
3
|
+
include CHANGELOG.md
|
|
4
|
+
recursive-include docs *.md
|
|
4
5
|
recursive-include licenses *.md *.txt LICENSE* *-LICENSE
|
|
5
|
-
include ASYNC_GUIDE.md
|
|
6
|
-
include COVALENT_COMPLEX_GUIDE.md
|
|
7
|
-
include PARAMETERS.md
|
|
8
|
-
include INSTALL_TESTPYPI.md
|
|
9
6
|
recursive-include boltz2_client *.py
|
|
10
|
-
recursive-include examples *.py *.yaml *.a3m
|
|
7
|
+
recursive-include examples *.py *.yaml *.a3m *.ipynb *.md *.json *.txt *.sh
|
|
11
8
|
recursive-include tests *.py
|
|
12
9
|
recursive-exclude * __pycache__
|
|
13
10
|
recursive-exclude * *.py[co]
|
|
14
11
|
recursive-exclude * .DS_Store
|
|
15
12
|
recursive-exclude dev *
|
|
16
13
|
recursive-exclude * *.cif
|
|
17
|
-
recursive-exclude * *.log
|
|
14
|
+
recursive-exclude * *.log
|
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
|
+
Name: boltz2-python-client
|
|
3
|
+
Version: 0.5.0
|
|
4
|
+
Summary: Python client for Boltz-2 protein structure prediction API with covalent complex and multi-endpoint support
|
|
5
|
+
Author-email: NVIDIA Corporation <bionemo-support@nvidia.com>
|
|
6
|
+
Maintainer-email: NVIDIA Corporation <bionemo-support@nvidia.com>
|
|
7
|
+
License: MIT
|
|
8
|
+
Project-URL: Homepage, https://github.com/NVIDIA/digital-biology-examples/tree/main/examples/nims/boltz-2
|
|
9
|
+
Project-URL: Repository, https://github.com/NVIDIA/digital-biology-examples
|
|
10
|
+
Project-URL: Documentation, https://github.com/NVIDIA/digital-biology-examples/tree/main/examples/nims/boltz-2/docs
|
|
11
|
+
Project-URL: Changelog, https://github.com/NVIDIA/digital-biology-examples/blob/main/examples/nims/boltz-2/CHANGELOG.md
|
|
12
|
+
Project-URL: Bug Reports, https://github.com/NVIDIA/digital-biology-examples/issues
|
|
13
|
+
Keywords: protein,structure,prediction,AI,machine learning,bioinformatics,covalent,complex,boltz2
|
|
14
|
+
Classifier: Development Status :: 4 - Beta
|
|
15
|
+
Classifier: Intended Audience :: Science/Research
|
|
16
|
+
Classifier: Intended Audience :: Developers
|
|
17
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
18
|
+
Classifier: Operating System :: OS Independent
|
|
19
|
+
Classifier: Programming Language :: Python :: 3
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
25
|
+
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
|
|
26
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
27
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
28
|
+
Requires-Python: >=3.8
|
|
29
|
+
Description-Content-Type: text/markdown
|
|
30
|
+
License-File: LICENSE
|
|
31
|
+
Requires-Dist: httpx>=0.24.0
|
|
32
|
+
Requires-Dist: pydantic>=2.0.0
|
|
33
|
+
Requires-Dist: typing-extensions>=4.0.0
|
|
34
|
+
Requires-Dist: aiofiles>=23.0.0
|
|
35
|
+
Requires-Dist: rich>=13.0.0
|
|
36
|
+
Requires-Dist: click>=8.0.0
|
|
37
|
+
Requires-Dist: PyYAML>=6.0.0
|
|
38
|
+
Requires-Dist: py3Dmol>=2.0.0
|
|
39
|
+
Requires-Dist: aiohttp>=3.8.0
|
|
40
|
+
Provides-Extra: sagemaker
|
|
41
|
+
Requires-Dist: boto3>=1.26.0; extra == "sagemaker"
|
|
42
|
+
Provides-Extra: dev
|
|
43
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
44
|
+
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
|
|
45
|
+
Requires-Dist: pandas>=1.5.0; extra == "dev"
|
|
46
|
+
|
|
47
|
+
# Boltz-2 Python Client
|
|
48
|
+
|
|
49
|
+
Copyright (c) 2025-2026, NVIDIA CORPORATION. All rights reserved.
|
|
50
|
+
|
|
51
|
+
[](https://badge.fury.io/py/boltz2-python-client)
|
|
52
|
+
[](https://www.python.org/downloads/)
|
|
53
|
+
[](https://opensource.org/licenses/MIT)
|
|
54
|
+
|
|
55
|
+
A comprehensive Python client for NVIDIA's Boltz-2 biomolecular structure prediction service. This package provides both synchronous and asynchronous interfaces, a rich CLI, and built-in 3D visualization capabilities.
|
|
56
|
+
|
|
57
|
+
## Features
|
|
58
|
+
|
|
59
|
+
- **Boltz2 NIM v1.6 Support** — Compatible with the latest NVIDIA Boltz2 NIM
|
|
60
|
+
- **Full API Coverage** — Protein folding, protein-ligand, covalent, DNA-protein, YAML configs
|
|
61
|
+
- **Async & Sync Clients** — Choose your preferred programming style
|
|
62
|
+
- **Rich CLI Interface** — Beautiful command-line tools with progress bars
|
|
63
|
+
- **Flexible Endpoints** — Local deployments, NVIDIA hosted API, or AWS SageMaker
|
|
64
|
+
- **Affinity Prediction** — Predict binding affinity (pIC50) for protein-ligand complexes
|
|
65
|
+
- **Virtual Screening** — High-level API for drug discovery campaigns
|
|
66
|
+
- **MSA Search Integration** — GPU-accelerated MSA generation with NVIDIA MSA Search NIM
|
|
67
|
+
- **A3M to Multimer MSA** — Convert ColabFold A3M files to paired multimer format
|
|
68
|
+
- **Multi-Endpoint Load Balancing** — Distribute predictions across multiple NIMs
|
|
69
|
+
- **PAE/PDE Matrix Output** — Full Predicted Aligned Error and Distance Error matrices
|
|
70
|
+
- **Structural Templates** — Template-guided structure prediction
|
|
71
|
+
|
|
72
|
+
## Installation
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
# From PyPI
|
|
76
|
+
pip install boltz2-python-client
|
|
77
|
+
|
|
78
|
+
# With SageMaker support
|
|
79
|
+
pip install "boltz2-python-client[sagemaker]"
|
|
80
|
+
|
|
81
|
+
# From source
|
|
82
|
+
git clone https://github.com/NVIDIA/digital-biology-examples.git
|
|
83
|
+
cd digital-biology-examples/examples/nims/boltz-2
|
|
84
|
+
pip install -e ".[dev]"
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Quick Start
|
|
88
|
+
|
|
89
|
+
### Python API
|
|
90
|
+
|
|
91
|
+
```python
|
|
92
|
+
import asyncio
|
|
93
|
+
from boltz2_client import Boltz2Client
|
|
94
|
+
|
|
95
|
+
async def main():
|
|
96
|
+
client = Boltz2Client(base_url="http://localhost:8000")
|
|
97
|
+
|
|
98
|
+
# Simple protein prediction
|
|
99
|
+
result = await client.predict_protein_structure(
|
|
100
|
+
sequence="MKTVRQERLKSIVRILERSKEPVSGAQLAEELSVSRQVIVQDIAYLRSLGYNIVATPRGYVLAGG"
|
|
101
|
+
)
|
|
102
|
+
print(f"Confidence: {result.confidence_scores[0]:.3f}")
|
|
103
|
+
|
|
104
|
+
# MSA-guided prediction
|
|
105
|
+
result = await client.predict_protein_structure(
|
|
106
|
+
sequence="MKTVRQERLK...",
|
|
107
|
+
msa_files=[("alignment.a3m", "a3m")],
|
|
108
|
+
recycling_steps=3,
|
|
109
|
+
sampling_steps=200,
|
|
110
|
+
)
|
|
111
|
+
|
|
112
|
+
asyncio.run(main())
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Synchronous API
|
|
116
|
+
|
|
117
|
+
```python
|
|
118
|
+
from boltz2_client import Boltz2SyncClient
|
|
119
|
+
|
|
120
|
+
client = Boltz2SyncClient(base_url="http://localhost:8000")
|
|
121
|
+
result = client.predict_protein_structure(sequence="MKTVRQ...")
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### CLI
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
# Health check
|
|
128
|
+
boltz2 health
|
|
129
|
+
|
|
130
|
+
# Protein structure
|
|
131
|
+
boltz2 protein "SEQUENCE" --recycling-steps 3 --sampling-steps 200
|
|
132
|
+
|
|
133
|
+
# Protein-ligand with affinity
|
|
134
|
+
boltz2 ligand "SEQUENCE" --smiles "CC(=O)OC1=CC=CC=C1C(=O)O" --predict-affinity
|
|
135
|
+
|
|
136
|
+
# Covalent complex
|
|
137
|
+
boltz2 covalent "SEQUENCE" --ccd U4U --bond A:11:SG:L:C22
|
|
138
|
+
|
|
139
|
+
# Virtual screening
|
|
140
|
+
boltz2 screen "SEQUENCE" compounds.csv -o results/
|
|
141
|
+
|
|
142
|
+
# Multimer from A3M files
|
|
143
|
+
boltz2 multimer-msa chain_A.a3m chain_B.a3m -c A,B -o complex.cif --save-all
|
|
144
|
+
|
|
145
|
+
# Multi-endpoint load balancing
|
|
146
|
+
boltz2 --multi-endpoint --base-url "http://gpu1:8000,http://gpu2:8000" protein "SEQUENCE"
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
## Configuration
|
|
150
|
+
|
|
151
|
+
### Local Endpoint (Default)
|
|
152
|
+
|
|
153
|
+
```python
|
|
154
|
+
client = Boltz2Client(base_url="http://localhost:8000")
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### NVIDIA Hosted Endpoint
|
|
158
|
+
|
|
159
|
+
```python
|
|
160
|
+
client = Boltz2Client(
|
|
161
|
+
base_url="https://health.api.nvidia.com",
|
|
162
|
+
api_key="your_api_key", # or set NVIDIA_API_KEY env var
|
|
163
|
+
endpoint_type="nvidia_hosted",
|
|
164
|
+
)
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### AWS SageMaker Endpoint
|
|
168
|
+
|
|
169
|
+
```python
|
|
170
|
+
client = Boltz2Client(
|
|
171
|
+
endpoint_type="sagemaker",
|
|
172
|
+
sagemaker_endpoint_name="my-boltz2-endpoint",
|
|
173
|
+
sagemaker_region="us-east-1",
|
|
174
|
+
)
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
Requires `pip install "boltz2-python-client[sagemaker]"` and AWS credentials.
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
# CLI
|
|
181
|
+
boltz2 --endpoint-type sagemaker --sagemaker-endpoint-name my-boltz2-endpoint health
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## Supported Prediction Types
|
|
185
|
+
|
|
186
|
+
| Type | CLI Command | Python Method |
|
|
187
|
+
|------|-------------|---------------|
|
|
188
|
+
| Protein folding | `protein` | `predict_protein_structure()` |
|
|
189
|
+
| Protein-ligand | `ligand` | `predict_protein_ligand_complex()` |
|
|
190
|
+
| Covalent complex | `covalent` | `predict_covalent_complex()` |
|
|
191
|
+
| DNA-protein | `dna-protein` | `predict_dna_protein_complex()` |
|
|
192
|
+
| Advanced | `advanced` | `predict_with_advanced_parameters()` |
|
|
193
|
+
| YAML config | `yaml` | `predict_from_yaml_config()` |
|
|
194
|
+
| Virtual screening | `screen` | `VirtualScreening.screen()` |
|
|
195
|
+
| MSA search | `msa-search` | `client.search_msa()` |
|
|
196
|
+
| Multimer MSA | `multimer-msa` | A3M conversion + `predict()` |
|
|
197
|
+
|
|
198
|
+
## Boltz-2 NIM v1.6 Parameter Limits
|
|
199
|
+
|
|
200
|
+
| Parameter | Range |
|
|
201
|
+
|-----------|-------|
|
|
202
|
+
| `recycling_steps` | 1–10 |
|
|
203
|
+
| `diffusion_samples` | 1–25 |
|
|
204
|
+
| `sampling_steps` | 10–1000 |
|
|
205
|
+
| `polymers` | up to 12 |
|
|
206
|
+
| `ligands` | up to 20 |
|
|
207
|
+
|
|
208
|
+
## Local Deployment
|
|
209
|
+
|
|
210
|
+
```bash
|
|
211
|
+
export NGC_API_KEY=<your_key>
|
|
212
|
+
export LOCAL_NIM_CACHE=~/.cache/nim
|
|
213
|
+
mkdir -p $LOCAL_NIM_CACHE && chmod -R 777 $LOCAL_NIM_CACHE
|
|
214
|
+
|
|
215
|
+
docker run -it --runtime=nvidia --shm-size=16G \
|
|
216
|
+
-p 8000:8000 -e NGC_API_KEY \
|
|
217
|
+
-v "$LOCAL_NIM_CACHE":/opt/nim/.cache \
|
|
218
|
+
nvcr.io/nim/mit/boltz2:1.6.0
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
## Examples
|
|
222
|
+
|
|
223
|
+
The [`examples/`](https://github.com/NVIDIA/digital-biology-examples/tree/main/examples/nims/boltz-2/examples) directory contains tutorial scripts, notebooks, and standalone demos:
|
|
224
|
+
|
|
225
|
+
**Tutorial Scripts** ([`examples/`](https://github.com/NVIDIA/digital-biology-examples/tree/main/examples/nims/boltz-2/examples)):
|
|
226
|
+
|
|
227
|
+
| File | Description |
|
|
228
|
+
|------|-------------|
|
|
229
|
+
| `01_basic_protein_folding.py` | Simple protein structure prediction |
|
|
230
|
+
| `02_protein_structure_prediction_with_msa.py` | MSA-guided predictions |
|
|
231
|
+
| `03_protein_ligand_complex.py` | Protein-ligand complexes |
|
|
232
|
+
| `04_covalent_bonding.py` | Covalent bond constraints |
|
|
233
|
+
| `05_dna_protein_complex.py` | DNA-protein interactions |
|
|
234
|
+
| `06_yaml_configurations.py` | YAML config files |
|
|
235
|
+
| `07_advanced_parameters.py` | Advanced API parameters |
|
|
236
|
+
| `08_affinity_prediction_simple.py` | Binding affinity prediction |
|
|
237
|
+
| `09_virtual_screening.py` | Virtual screening |
|
|
238
|
+
| `10_msa_search_integration.py` | GPU-accelerated MSA search + prediction |
|
|
239
|
+
| `11_msa_search_large_protein.py` | Large protein MSA optimization |
|
|
240
|
+
| `12_msa_affinity_prediction.py` | MSA-guided affinity prediction |
|
|
241
|
+
| `13_a3m_to_multimer_csv.py` | A3M to multimer MSA conversion |
|
|
242
|
+
|
|
243
|
+
**Notebooks** ([`examples/notebooks/`](https://github.com/NVIDIA/digital-biology-examples/tree/main/examples/nims/boltz-2/examples/notebooks)):
|
|
244
|
+
|
|
245
|
+
| File | Description |
|
|
246
|
+
|------|-------------|
|
|
247
|
+
| `01_multimer_prediction.ipynb` | Heterodimer/homodimer prediction |
|
|
248
|
+
| `02_cdk4_msa_affinity_prediction.ipynb` | CDK4-Palbociclib MSA + affinity workflow |
|
|
249
|
+
| `03_colabfold_a3m_to_multimer.ipynb` | ColabFold A3M multimer pairing |
|
|
250
|
+
|
|
251
|
+
## Documentation
|
|
252
|
+
|
|
253
|
+
| Guide | Description |
|
|
254
|
+
|-------|-------------|
|
|
255
|
+
| [Parameters](https://github.com/NVIDIA/digital-biology-examples/blob/main/examples/nims/boltz-2/docs/parameters.md) | Detailed parameter documentation |
|
|
256
|
+
| [YAML Configuration](https://github.com/NVIDIA/digital-biology-examples/blob/main/examples/nims/boltz-2/docs/yaml.md) | Working with YAML config files |
|
|
257
|
+
| [Affinity Prediction](https://github.com/NVIDIA/digital-biology-examples/blob/main/examples/nims/boltz-2/docs/affinity_prediction.md) | Binding affinity (pIC50) guide |
|
|
258
|
+
| [Virtual Screening](https://github.com/NVIDIA/digital-biology-examples/blob/main/examples/nims/boltz-2/docs/virtual_screening.md) | Drug discovery campaigns |
|
|
259
|
+
| [MSA Search](https://github.com/NVIDIA/digital-biology-examples/blob/main/examples/nims/boltz-2/docs/msa_search.md) | GPU-accelerated MSA generation |
|
|
260
|
+
| [A3M Multimer MSA](https://github.com/NVIDIA/digital-biology-examples/blob/main/examples/nims/boltz-2/docs/a3m_to_multimer_msa.md) | ColabFold A3M conversion |
|
|
261
|
+
| [Multi-Endpoint](https://github.com/NVIDIA/digital-biology-examples/blob/main/examples/nims/boltz-2/docs/multi_endpoint.md) | Load balancing across NIMs |
|
|
262
|
+
| [Covalent Complex](https://github.com/NVIDIA/digital-biology-examples/blob/main/examples/nims/boltz-2/docs/covalent_complex.md) | Covalent bond predictions |
|
|
263
|
+
| [Async Guide](https://github.com/NVIDIA/digital-biology-examples/blob/main/examples/nims/boltz-2/docs/async.md) | Async programming best practices |
|
|
264
|
+
| [Changelog](https://github.com/NVIDIA/digital-biology-examples/blob/main/examples/nims/boltz-2/CHANGELOG.md) | Release history |
|
|
265
|
+
|
|
266
|
+
## Development
|
|
267
|
+
|
|
268
|
+
```bash
|
|
269
|
+
pip install -e ".[dev]"
|
|
270
|
+
pytest tests/ # mock tests only
|
|
271
|
+
pytest tests/ -m real_endpoint # live endpoint tests
|
|
272
|
+
BOLTZ2_NIM_URL=http://your-nim:8000 pytest tests/ -v # all tests
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
## Requirements
|
|
276
|
+
|
|
277
|
+
- **Python** 3.8+
|
|
278
|
+
- **Core**: httpx, pydantic, rich, click, PyYAML, aiofiles, aiohttp, py3Dmol
|
|
279
|
+
- **Optional**: boto3 (SageMaker), pandas (dev)
|
|
280
|
+
|
|
281
|
+
## License
|
|
282
|
+
|
|
283
|
+
MIT License — see [LICENSE](https://github.com/NVIDIA/digital-biology-examples/blob/main/examples/nims/boltz-2/LICENSE). Third-party licenses in [licenses/](https://github.com/NVIDIA/digital-biology-examples/tree/main/examples/nims/boltz-2/licenses/).
|
|
284
|
+
|
|
285
|
+
## Links
|
|
286
|
+
|
|
287
|
+
- [NVIDIA BioNeMo](https://www.nvidia.com/en-us/clara/bionemo/)
|
|
288
|
+
- [Boltz-2 Paper](https://cdn.prod.website-files.com/68404fd075dba49e58331ad9/6842ee1285b9af247ac5a122_boltz2.pdf)
|
|
289
|
+
- [TestPyPI](https://test.pypi.org/project/boltz2-python-client/)
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
|
|
293
|
+
## Disclaimer
|
|
294
|
+
|
|
295
|
+
This software is provided as-is without warranties of any kind. No guarantees are made regarding the accuracy, reliability, or fitness for any particular purpose. The underlying models and APIs are experimental and subject to change without notice. Users are responsible for validating all results and assessing suitability for their specific use cases.
|
|
296
|
+
|
|
297
|
+
---
|
|
298
|
+
|
|
299
|
+
**Made with care for the computational biology community**
|