I wasn't sure where to submit bug reports so I'm posting here instead.
I've noticed a scoring error after repeated pose.replace_residue() function calls. The final pose after repeated calls to replace_residue() ends up having a score substantially lower (often < -50 Rosetta energy units) than when scored using the scoring application or if the pose is loaded upon application initialization.
To replicate this behaviour run the Pose classes replace_residue() function multiple times and rescore with the scoring application, I've been doing this via a custom c++ application I'm currently toying with. Below I'll use the backrub c++ design application to demonstrate
- ~/path/bin/backrub.static.linuxgccrelease -database ~/path/database -s some_model.pdb -resfile nataa.resfile -backrub:sc_prob 1.0 -backrub:sc_prob_uniform 0.0 -resfile nataa.resfile -ex1 -ex2 -backrub:mm_bend_weight 0.0
- ~/path/bin/score.static.linuxgccrelease -database ~/path/database -s some_model_0001.pdb
What you'll notice is that the score assigned in step 1 to the lowest energy model will be X. Rescoring the model will often result in a score greater than X+50 after 1000 resplace_residue calls.
I've tried this on Rosetta 3.3 and Rosetta 2015wk12 builds and get the same scoring anomaly. In all instances the talaris2013 scoring function was used.
Let me know if more information is required or if I'm doing something fundamentally incorrect.