Summary
From reading the repo, the guidance currently centers on real-space density agreement with no explicit physical-plausibility term in the loop. I wanted to get thoughts on adding an all-atom energy/plausibility reward as a RewardFunctionProtocol.
Current implementation
What I'm seeing in the current code
- The only steering reward is core/rewards/real_space_density.py (differentiable real-space density, via the qFit scattering machinery).
- The only "clash" logic is in metrics/sidechain_metrics.py, as a post-hoc evaluation metric, which isnt part of steering/selection.
Proposed enhancement
- v1: a plausibility reward implementing RewardFunctionProtocol, backed by an all-atom score (e.g. Rosetta ref2015). Since it's non-differentiable, it'd suit FK/SMC steering (evaluate-and-resample) and/or post-hoc re-ranking, rather than gradient guidance.
- v2 : a differentiable, GPU-native learned energy (e.g. an energy-based transformer) so the same signal can be used for gradient guidance.
Summary
From reading the repo, the guidance currently centers on real-space density agreement with no explicit physical-plausibility term in the loop. I wanted to get thoughts on adding an all-atom energy/plausibility reward as a RewardFunctionProtocol.
Current implementation
What I'm seeing in the current code
Proposed enhancement