Mutate does not find all possible improvements

Case number:671071-994715
Topic:Game: Other
Opened by:Timo van der Laan
Opened on:Wednesday, March 13, 2013 - 20:16
Last modified:Thursday, March 14, 2013 - 17:03

I have noticed that mutate does not find all possible improvements.
Reproducable by taking the quicksave solution 3 that I shared and follow this routine:
- first wiggle to get 40 pts loss back
- then run 2 rounds of mutate on the whole structure (no improvement there)
- then handchange:
segm 18 to i Gain: 13.365
segm 13 to e Gain: 0
segm 15 to l Gain: 9.127
segm 35 to e Gain: 2.589
segm 33 to k Gain: 2.044
segm 19 to e Gain: 0
segm 13 to e Gain: 0
segm 37 to e Gain: 0
segm 31 to k Gain: 4.173
segm 34 to e Gain: 0
segm 20 to e Gain: 0
segm 35 to e Gain: 0
Why is the mutate function not finding any improvement? Because it is a trimer or filters or ....

(Wed, 03/13/2013 - 20:16  |  3 comments)

jflat06's picture
User offline. Last seen 1 day 3 hours ago. Offline
Joined: 09/29/2010
Groups: Window Group

Mutate generates a random permutation of the residues on each iteration, and goes through this permutation, packing residues which haven't had nearby residues packed yet.

Since the permutation is random, the algorithm is random and it's not too surprising that it is not coming up with an optimal residue set.

Additionally, shake (and mutate) are capable of getting stuck in local minima in the same way that wiggle can. It's entirely possible that some stable shaken solution actually has a better set of sidechains - and sometimes humans such as yourself can see far enough way to find this set.

Joined: 09/21/2011
Groups: Void Crushers

I found these improvements just running a very simple script trying each possible residue with the segments in a random order. (See the group recipes). I had the impression that all possibilities for each segment were checked by mutate, so that assumption is false?

Joined: 09/24/2012
Groups: Go Science
Type: Question » Suggestion

Suggestion: change the fully random of Mutate by a partial random:

1-random on all segment then random on all segments but already used segments ...start again with all segments when the list is over;

On each segment (e.g. on first loop):
2-random on all candidate AA, then random on all AA but already used AA ... start again with all AA when the list is over

With this method, we would be sure to have covered all the possibilities within 20 cycles for Mutate (on each segment).

"One round" would consider all segments x all AAs (to be decided: may be best to put one round on one segment all AAs in order to let more flexibility for the cookers).


Developed by: UW Center for Game Science, UW Institute for Protein Design, Northeastern University, Vanderbilt University Meiler Lab, UC Davis
Supported by: DARPA, NSF, NIH, HHMI, Amazon, Microsoft, Adobe, Boehringer Ingelheim, RosettaCommons