Merge pull request #3499 from RosettaCommons/vmullig/penalize_only_reachable_bunsats
Ensure that the buried_unsatisfied_penalty works with packing problems in which there are unsatisfiable "native" buried unsats.
Kale Kundert identified a problem with the buried_unsatisfied_penalty scoreterm in pull request #3498: when used for partial redesign of a pose that contains "native" buried unsats (e.g. when doing binder design to a target from the PDB), the buried unsats that can't be designed out are penalized, resulting in ridiculously high penalty values and penalty deltas, and causing the term to dominate unreasonably. The solution is to take a page from the voids_penalty, and to ensure that, during packing, only those buried unsats that are (a) part of packable rotamers, or (b) on unpackable rotamers, but reachable by at least one hbond to a packable rotamer, are the only ones counted and penalized. This is arguably the best solution (and thanks to Andy Watkins and Rocco Moretti for the suggestions), since it will mean that the term will "just work" on all problems without users having to do anything. This pull request aims to implement this solution.
@kalekundert @everyday847 @roccomoretti