You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
SASA computation fails in analysis step for example inputs (Coordinates are empty) #166
ValueError: Coordinates are empty
File "boltzgen/task/analyze/analyze_utils.py", line 692, in get_delta_sasa
target_area = sasa(...)
File "biotite/structure/sasa.pyx", line 184
Pipeline exits during step 5/6: analysis.
boltzgen run example/small_molecule_from_file_and_smiles/4g37.yaml \
--output workbench \
--protocol protein-anything \
--num_designs 10
Result:
Pipeline fails at step 5 (analysis) with ValueError: Coordinates are empty.
Steps 1-4 (design, inverse_folding, folding, design_folding) complete successfully before the crash.
<details><summary>Full traceback</summary>
File "/app/src/boltzgen/task/analyze/analyze.py", line 237, in run
self.distribute_tasks()
File "/app/src/boltzgen/task/analyze/analyze.py", line 258, in distribute_tasks
sample_ids = self.run_parallel(num, num_processes)
File "/app/src/boltzgen/task/analyze/analyze.py", line 214, in run_parallel
sid = f.result()
File "/usr/lib/python3.11/concurrent/futures/_base.py", line 401, in __get_result
raise self._exception
ValueError: Coordinates are empty
</details>
Happy to test PR #167 if helpful.
Test Command:
boltzgen run /designs/4g37.yaml --output /output --protocol protein-anything --num_designs 2 --devices 1
Result: All 6 pipeline steps completed successfully:
✓ Step design completed successfully in 149.6s
✓ Step inverse_folding completed successfully in 11.1s
✓ Step folding completed successfully in 209.0s
✓ Step design_folding completed successfully in 209.0s
✓ Step analysis completed successfully in 17.5s ← Previously crashed here
✓ Step filtering completed successfully in 10.4s
Output verification:
2/2 designs made it to final_ranked_designs/
Metrics CSV generated with all expected columns
SASA values are empty/NaN as expected (the fix returns NaN when atom selection fails rather than crashing)
All other metrics computed normally (pLDDT, pTM, ipTM, liabilities, etc.)
The fix gracefully handles the edge case where SASA atom selection is empty for small molecule conjugates.
Activity
buerbaumer commentedon Feb 1, 2026
I can confirm this issue.
Environment:
Reproduction:
buerbaumer commentedon Feb 1, 2026
Update: Tested PR #167 - Confirmed Fix
I tested PR #167 and can confirm it resolves this issue.
Installation:
pip install git+https://github.com/HannesStark/boltzgen.git@refs/pull/167/head
Test Command:
boltzgen run /designs/4g37.yaml --output /output --protocol protein-anything --num_designs 2 --devices 1
Result: All 6 pipeline steps completed successfully:
✓ Step design completed successfully in 149.6s
✓ Step inverse_folding completed successfully in 11.1s
✓ Step folding completed successfully in 209.0s
✓ Step design_folding completed successfully in 209.0s
✓ Step analysis completed successfully in 17.5s ← Previously crashed here
✓ Step filtering completed successfully in 10.4s
Output verification:
2/2 designs made it to final_ranked_designs/
Metrics CSV generated with all expected columns
SASA values are empty/NaN as expected (the fix returns NaN when atom selection fails rather than crashing)
All other metrics computed normally (pLDDT, pTM, ipTM, liabilities, etc.)
The fix gracefully handles the edge case where SASA atom selection is empty for small molecule conjugates.
@juliocesar-io Nice fix! This PR is ready to merge.
Guard get_delta_sasa against empty atom selections