boltz2-python-client 0.4.0__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.
Files changed (130) hide show
  1. boltz2_python_client-0.5.0/CHANGELOG.md +108 -0
  2. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/LICENSE +1 -1
  3. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/MANIFEST.in +4 -7
  4. boltz2_python_client-0.5.0/PKG-INFO +299 -0
  5. boltz2_python_client-0.5.0/README.md +253 -0
  6. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/boltz2_client/__init__.py +24 -12
  7. boltz2_python_client-0.5.0/boltz2_client/__main__.py +13 -0
  8. boltz2_python_client-0.5.0/boltz2_client/a3m/__init__.py +48 -0
  9. boltz2_python_client-0.5.0/boltz2_client/a3m/converter.py +567 -0
  10. boltz2_python_client-0.5.0/boltz2_client/a3m/pairing.py +271 -0
  11. boltz2_python_client-0.5.0/boltz2_client/a3m/parser.py +868 -0
  12. boltz2_python_client-0.5.0/boltz2_client/a3m_to_csv_converter.py +28 -0
  13. boltz2_python_client-0.5.0/boltz2_client/cli/__init__.py +182 -0
  14. boltz2_python_client-0.5.0/boltz2_client/cli/info.py +217 -0
  15. boltz2_python_client-0.5.0/boltz2_client/cli/msa.py +844 -0
  16. boltz2_python_client-0.5.0/boltz2_client/cli/predict.py +881 -0
  17. boltz2_python_client-0.5.0/boltz2_client/cli/screen.py +142 -0
  18. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/boltz2_client/client.py +163 -31
  19. boltz2_python_client-0.5.0/boltz2_client/data/__init__.py +7 -0
  20. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/boltz2_client/exceptions.py +1 -1
  21. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/boltz2_client/models.py +89 -52
  22. boltz2_python_client-0.5.0/boltz2_client/msa_search.py +604 -0
  23. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/boltz2_client/multi_endpoint_client.py +13 -8
  24. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/boltz2_client/utils.py +323 -2
  25. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/boltz2_client/virtual_screening.py +11 -23
  26. boltz2_python_client-0.5.0/boltz2_python_client.egg-info/PKG-INFO +299 -0
  27. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/boltz2_python_client.egg-info/SOURCES.txt +40 -33
  28. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/boltz2_python_client.egg-info/requires.txt +9 -0
  29. boltz2_python_client-0.5.0/docs/a3m_to_multimer_msa.md +599 -0
  30. boltz2_python_client-0.5.0/docs/affinity_prediction.md +292 -0
  31. boltz2_python_client-0.4.0/ASYNC_GUIDE.md → boltz2_python_client-0.5.0/docs/async.md +2 -2
  32. boltz2_python_client-0.4.0/COVALENT_COMPLEX_GUIDE.md → boltz2_python_client-0.5.0/docs/covalent_complex.md +10 -9
  33. boltz2_python_client-0.5.0/docs/msa_search.md +446 -0
  34. boltz2_python_client-0.5.0/docs/multi_endpoint.md +488 -0
  35. boltz2_python_client-0.4.0/PARAMETERS.md → boltz2_python_client-0.5.0/docs/parameters.md +29 -22
  36. boltz2_python_client-0.5.0/docs/virtual_screening.md +327 -0
  37. boltz2_python_client-0.4.0/YAML_GUIDE.md → boltz2_python_client-0.5.0/docs/yaml.md +12 -10
  38. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/examples/01_basic_protein_folding.py +4 -0
  39. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/examples/02_protein_structure_prediction_with_msa.py +5 -1
  40. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/examples/03_protein_ligand_complex.py +6 -6
  41. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/examples/04_covalent_bonding.py +4 -0
  42. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/examples/05_dna_protein_complex.py +4 -0
  43. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/examples/06_yaml_configurations.py +7 -3
  44. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/examples/07_advanced_parameters.py +15 -12
  45. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/examples/08_affinity_prediction_simple.py +1 -1
  46. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/examples/09_virtual_screening.py +1 -2
  47. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/examples/10_msa_search_integration.py +7 -3
  48. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/examples/11_msa_search_large_protein.py +4 -0
  49. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/examples/12_msa_affinity_prediction.py +4 -0
  50. boltz2_python_client-0.4.0/examples/15_a3m_to_multimer_csv.py → boltz2_python_client-0.5.0/examples/13_a3m_to_multimer_csv.py +5 -1
  51. boltz2_python_client-0.5.0/examples/README.md +102 -0
  52. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/examples/barnase_barstar_with_msa.py +8 -3
  53. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/examples/cdk4_msa_affinity_example.py +8 -3
  54. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/examples/comprehensive_multi_endpoint_demo.py +6 -2
  55. boltz2_python_client-0.5.0/examples/data/cdk2_target.txt +1 -0
  56. boltz2_python_client-0.5.0/examples/data/cdk4_msa_affinity/cdk4_palbociclib_results.json +23 -0
  57. boltz2_python_client-0.5.0/examples/data/kinase_y7w_affinity.json +10 -0
  58. boltz2_python_client-0.5.0/examples/data/test_msa_endpoint_curl.sh +35 -0
  59. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/examples/msa_search_simple_demo.py +4 -0
  60. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/examples/multi_endpoint_screening.py +5 -1
  61. boltz2_python_client-0.5.0/examples/notebooks/01_multimer_prediction.ipynb +687 -0
  62. boltz2_python_client-0.5.0/examples/notebooks/02_cdk4_msa_affinity_prediction.ipynb +1174 -0
  63. boltz2_python_client-0.5.0/examples/notebooks/03_colabfold_a3m_to_multimer.ipynb +658 -0
  64. boltz2_python_client-0.5.0/examples/notebooks/boltz2_comprehensive_demo.ipynb +34 -0
  65. boltz2_python_client-0.5.0/examples/notebooks/boltz2_demo.ipynb +1106 -0
  66. boltz2_python_client-0.5.0/examples/notebooks/boltz2_nim_DNA_Protein_Complex_example_py3Dmol.ipynb +937 -0
  67. boltz2_python_client-0.5.0/examples/notebooks/boltz2_nim_protein_ligand_covalent_complex_molstar_visualization.ipynb +736 -0
  68. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/licenses/README.md +1 -0
  69. boltz2_python_client-0.5.0/licenses/aiohttp-LICENSE +13 -0
  70. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/pyproject.toml +15 -5
  71. boltz2_python_client-0.5.0/tests/__init__.py +5 -0
  72. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/tests/conftest.py +35 -22
  73. boltz2_python_client-0.5.0/tests/constants.py +18 -0
  74. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/tests/test_a3m_to_csv_converter.py +13 -12
  75. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/tests/test_basic.py +14 -14
  76. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/tests/test_cli_multi_endpoint.py +88 -74
  77. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/tests/test_comprehensive_stress.py +11 -56
  78. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/tests/test_examples_syntax.py +24 -49
  79. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/tests/test_integration_scenarios.py +66 -115
  80. boltz2_python_client-0.5.0/tests/test_live_endpoints.py +329 -0
  81. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/tests/test_msa_search.py +30 -50
  82. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/tests/test_multi_endpoint_functionality.py +59 -299
  83. boltz2_python_client-0.4.0/PKG-INFO +0 -814
  84. boltz2_python_client-0.4.0/README.md +0 -776
  85. boltz2_python_client-0.4.0/boltz2_client/__main__.py +0 -9
  86. boltz2_python_client-0.4.0/boltz2_client/a3m_to_csv_converter.py +0 -2012
  87. boltz2_python_client-0.4.0/boltz2_client/cli.py +0 -2146
  88. boltz2_python_client-0.4.0/boltz2_client/data/__init__.py +0 -3
  89. boltz2_python_client-0.4.0/boltz2_client/models_affinity.py +0 -46
  90. boltz2_python_client-0.4.0/boltz2_client/msa_search.py +0 -489
  91. boltz2_python_client-0.4.0/boltz2_python_client.egg-info/PKG-INFO +0 -814
  92. boltz2_python_client-0.4.0/examples/cdk4_msa_affinity/cdk4_direct.a3m +0 -202
  93. boltz2_python_client-0.4.0/examples/cdk4_msa_affinity/cdk4_msa.a3m +0 -2
  94. boltz2_python_client-0.4.0/examples/cdk4_msa_affinity/cdk4_simple.a3m +0 -202
  95. boltz2_python_client-0.4.0/examples/debug_msa_conversion.py +0 -201
  96. boltz2_python_client-0.4.0/examples/dimer_examples.py +0 -145
  97. boltz2_python_client-0.4.0/examples/fix_cdk4_msa_search.py +0 -201
  98. boltz2_python_client-0.4.0/examples/multimer_file_output_example.py +0 -119
  99. boltz2_python_client-0.4.0/examples/multimer_msa_example.py +0 -214
  100. boltz2_python_client-0.4.0/examples/quick_barnase_barstar.py +0 -76
  101. boltz2_python_client-0.4.0/examples/quick_barnase_barstar_msa.py +0 -157
  102. boltz2_python_client-0.4.0/examples/quick_gcn4_homodimer.py +0 -62
  103. boltz2_python_client-0.4.0/examples/quick_heterodimer_example.py +0 -57
  104. boltz2_python_client-0.4.0/examples/quick_msa_test.py +0 -51
  105. boltz2_python_client-0.4.0/examples/simple_dimer_examples.py +0 -125
  106. boltz2_python_client-0.4.0/examples/test_boltz2_server.py +0 -195
  107. boltz2_python_client-0.4.0/examples/test_cdk4_msa_fixed.py +0 -178
  108. boltz2_python_client-0.4.0/examples/test_cdk4_msa_simple.py +0 -73
  109. boltz2_python_client-0.4.0/examples/test_msa_a3m_simple.py +0 -165
  110. boltz2_python_client-0.4.0/examples/test_msa_endpoint.py +0 -76
  111. boltz2_python_client-0.4.0/examples/test_notebook_fixes.py +0 -98
  112. boltz2_python_client-0.4.0/tests/__init__.py +0 -1
  113. boltz2_python_client-0.4.0/tests/test_real_endpoints.py +0 -283
  114. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/boltz2_client/data/speclist.txt +0 -0
  115. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/boltz2_python_client.egg-info/dependency_links.txt +0 -0
  116. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/boltz2_python_client.egg-info/entry_points.txt +0 -0
  117. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/boltz2_python_client.egg-info/top_level.txt +0 -0
  118. {boltz2_python_client-0.4.0/examples → boltz2_python_client-0.5.0/examples/data}/msa-kras-g12c_combined.a3m +0 -0
  119. {boltz2_python_client-0.4.0/examples → boltz2_python_client-0.5.0/examples/data}/multi_protein_complex.yaml +0 -0
  120. {boltz2_python_client-0.4.0/examples → boltz2_python_client-0.5.0/examples/data}/protein_ligand.yaml +0 -0
  121. {boltz2_python_client-0.4.0/examples → boltz2_python_client-0.5.0/examples/data}/sars_cov2_mpro_nirmatrelvir.yaml +0 -0
  122. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/licenses/PyYAML-LICENSE +0 -0
  123. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/licenses/aiofiles-LICENSE +0 -0
  124. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/licenses/click-LICENSE +0 -0
  125. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/licenses/httpx-LICENSE +0 -0
  126. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/licenses/py3Dmol-LICENSE +0 -0
  127. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/licenses/pydantic-LICENSE +0 -0
  128. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/licenses/rich-LICENSE +0 -0
  129. {boltz2_python_client-0.4.0 → boltz2_python_client-0.5.0}/licenses/typing-extensions-LICENSE +0 -0
  130. {boltz2_python_client-0.4.0 → 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 YAML_GUIDE.md
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
+ [![PyPI version](https://badge.fury.io/py/boltz2-python-client.svg)](https://badge.fury.io/py/boltz2-python-client)
52
+ [![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)
53
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](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**