Hello People,
I have setup a generic montecarlo mover with backrub, but I do not get any accepted nor rejected moves, the following is my code:
backrub = pyrosetta.rosetta.protocols.backrub.BackrubMover()
backrub.pivot_residues(pose)
GMC = pyrosetta.rosetta.protocols.monte_carlo.GenericMonteCarloMover()
GMC.set_mover(backrub)
GMC.set_scorefxn(scorefxn)
GMC.set_maxtrials(500)
GMC.set_temperature(1.0)
GMC.set_preapply(False)
GMC.set_recover_low(True)
GMC.apply(pose)
This is an example of my output
protocols.monte_carlo.GenericMonteCarloMover: mover= Backrub Score_eval= ScoreXXX trials= 0 NO ACCEPTS.
protocols.monte_carlo.GenericMonteCarloMover: Finished MC. Out of 500 0 accepted and 0 rejected.
core.pack.pack_rotamers: built 42494 rotamers at 99 positions.
core.pack.interaction_graph.interaction_graph_factory: Instantiating PDInteractionGraph
core.pack.interaction_graph.interaction_graph_factory: IG: 1159069636 bytes
protocols.monte_carlo.GenericMonteCarloMover: No task inputted
protocols.monte_carlo.GenericMonteCarloMover: The number of trials for this run is: 500
protocols.monte_carlo.GenericMonteCarloMover: Initialization done
protocols.monte_carlo.GenericMonteCarloMover: Trial number: 1
protocols.monte_carlo.GenericMonteCarloMover: MC stopping condition met at trial 1 because maximum number of accepted moves was achieved
protocols.monte_carlo.GenericMonteCarloMover: Lower score sampled: trial= 0, score(current/last_accepted/best)= 0.000/ -318.460/ -318.460
I iterate over 50 times but I get no change in my structure nor score. So I beleive the mover is not preforming any changes on my pose.
Any help please?
Category:
Post Situation:
This is what pops out at me:
Note that the "Out of 500" and "The number of trials for this run is: 500" doesn't really mean anything, as that's simply reiterating the maximum number of trials, not the number which were actually performed.
The problem you're having is that the default max_accepted_trials() is set to zero. GenericMonteCarlo really isn't intended to be made with the default constructor -- that's just a convenience method for RosettaScripts initialization. For PyRosetta, you really want to be using one of the other constructors, which require you to set the max_accepted_trials explicitly.