I have the following code that i wrote back in summer 2017 and it worked perfectly until February. But then I started to get strange errors (and I have not modified my code at all). After investigating it seems that the GenericMonteCarloMover() is deleting the content of the pose after the .apply(pose). In other words, after the mover is done i get an empty pose (no length and no sequence).
I am not sure why that is. I tried to comment in and out other parts of this code but it seems either the GenericMonteCarloMover() is the issue or the score function or the PackStatFilter() mover. In the code I have pointed out the commands that, when commented out, the pose does not get deleted.
Could this have happened after an update? was there a majore update of PyRosetta? I am currently using PyRosetta4.Release.python36.ubuntu.release-170.tar.bz2 released on 2018-02-18.
Or has the structure of the GenericMonteCarloMover() changed and I should modify my code to accept the new changed? I am not sure how to diagnose this issue.
Attached also is the terminal printout.
from pyrosetta import * from pyrosetta.toolbox import * init() pose = pose_from_pdb('test.pdb') scorefxn = get_fa_scorefxn() filters = rosetta.protocols.simple_filters.PackStatFilter() read = pyrosetta.rosetta.core.pack.task.operation.ReadResfile('Resfile.resfile') task = pyrosetta.rosetta.core.pack.task.TaskFactory() task.push_back(read) movemap = MoveMap() movemap.set_bb(False) movemap.set_chi(True) mover = pyrosetta.rosetta.protocols.denovo_design.movers.FastDesign() mover.set_task_factory(task) mover.set_movemap(movemap) mover.set_scorefxn(scorefxn) MC = pyrosetta.rosetta.protocols.simple_moves.GenericMonteCarloMover() MC.set_mover(mover) MC.set_scorefxn(scorefxn) # <--- Problem Here MC.set_maxtrials(1) MC.set_temperature(1) MC.set_preapply(True) MC.set_drift(True) MC.set_sampletype('high') MC.add_filter(filters , False , 1.0 , 'high' , True) # <--- Problem Here print('\n\n++++++++++++++++++++++++++++++\n' , pose , '\n++++++++++++++++++++++++++++++\n\n') MC.apply(pose) print('\n\n++++++++++++++++++++++++++++++\n' , pose , '\n++++++++++++++++++++++++++++++\n\n')